src/cm/media/js/lib/yui/yui3-3.15.0/build/yui-nodejs/yui-nodejs.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
The YUI module contains the components required for building the YUI seed file.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
This includes the script loading mechanism, a simple queue, and the core
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
@module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
@main yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
@submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
/*jshint eqeqeq: false*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
if (typeof YUI != 'undefined') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
    YUI._YUI = YUI;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
The YUI global namespace object. This is the constructor for all YUI instances.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
This is a self-instantiable factory function, meaning you don't need to precede
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
it with the `new` operator. You can invoke it directly like this:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    YUI().use('*', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
        // Y is a new YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
But it also works like this:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    var Y = YUI();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
The `YUI` constructor accepts an optional config object, like this:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
    YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
        debug: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
        combine: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    }).use('node', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
        // Y.Node is ready to use.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
See the API docs for the <a href="config.html">Config</a> class for the complete
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
list of supported configuration properties accepted by the YUI constuctor.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
If a global `YUI` object is already defined, the existing YUI object will not be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
overwritten, to ensure that defined namespaces are preserved.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
Each YUI instance has full custom event support, but only if the event system is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
@class YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
@uses EventTarget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
@constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
@global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
@param {Object} [config]* Zero or more optional configuration objects. Config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    values are stored in the `Y.config` property. See the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    <a href="config.html">Config</a> docs for the list of supported properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    /*global YUI*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
    /*global YUI_config*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
    var YUI = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        var i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
            Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            args = arguments,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            l = args.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
            instanceOf = function(o, type) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
                return (o && o.hasOwnProperty && (o instanceof type));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            gconf = (typeof YUI_config !== 'undefined') && YUI_config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
        if (!(instanceOf(Y, YUI))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            Y = new YUI();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
            // set up the core environment
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
            Y._init();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
            Master configuration that might span multiple contexts in a non-
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
            browser environment. It is applied first to all instances in all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
            contexts.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
            @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
                YUI.GlobalConfig = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
                    filter: 'debug'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
                };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
                YUI().use('node', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
                    // debug files used here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
                YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
                    filter: 'min'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                }).use('node', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
                    // min files used here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
            @property {Object} GlobalConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
            @global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
            @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
            **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
            if (YUI.GlobalConfig) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
                Y.applyConfig(YUI.GlobalConfig);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
            /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
            Page-level config applied to all YUI instances created on the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
            current page. This is applied after `YUI.GlobalConfig` and before
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
            any instance-level configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
            @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
                // Single global var to include before YUI seed file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
                YUI_config = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
                    filter: 'debug'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
                };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
                YUI().use('node', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
                    // debug files used here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
                YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
                    filter: 'min'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
                }).use('node', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
                    // min files used here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
            @property {Object} YUI_config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
            @global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
            **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
            if (gconf) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
                Y.applyConfig(gconf);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
            // bind the specified additional modules for this instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
            if (!l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
                Y._setup();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
        if (l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
            // Each instance can accept one or more configuration objects.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
            // These are applied after YUI.GlobalConfig and YUI_Config,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
            // overriding values set in those config files if there is a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
            // matching property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
            for (; i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
                Y.applyConfig(args[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
            Y._setup();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
        Y.instanceOf = instanceOf;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
        return Y;
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
(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
    var proto, prop,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
        VERSION = '@VERSION@',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
        PERIOD = '.',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
        BASE = 'http://yui.yahooapis.com/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
        /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
            These CSS class names can't be generated by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
            getClassName since it is not available at the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
            time they are being used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
        DOC_LABEL = 'yui3-js-enabled',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
        CSS_STAMP_EL = 'yui3-css-stamp',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
        NOOP = function() {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
        SLICE = Array.prototype.slice,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
        APPLY_TO_AUTH = { 'io.xdrReady': 1,   // the functions applyTo
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
                          'io.xdrResponse': 1,   // can call. this should
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
                          'SWF.eventHandler': 1 }, // be done at build time
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
        hasWin = (typeof window != 'undefined'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
        win = (hasWin) ? window : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
        doc = (hasWin) ? win.document : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
        docEl = doc && doc.documentElement,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
        docClass = docEl && docEl.className,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
        instances = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
        time = new Date().getTime(),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
        add = function(el, type, fn, capture) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
            if (el && el.addEventListener) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
                el.addEventListener(type, fn, capture);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
            } else if (el && el.attachEvent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
                el.attachEvent('on' + type, fn);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
        remove = function(el, type, fn, capture) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
            if (el && el.removeEventListener) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
                // this can throw an uncaught exception in FF
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
                try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
                    el.removeEventListener(type, fn, capture);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
                } catch (ex) {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            } else if (el && el.detachEvent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
                el.detachEvent('on' + type, fn);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
        handleReady = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
            YUI.Env.DOMReady = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
            if (hasWin) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
                remove(doc, 'DOMContentLoaded', handleReady);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
            }        
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
        handleLoad = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
            YUI.Env.windowLoaded = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
            YUI.Env.DOMReady = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
            if (hasWin) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
                remove(window, 'load', handleLoad);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
        getLoader = function(Y, o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
            var loader = Y.Env._loader,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
                lCore = [ 'loader-base' ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
                G_ENV = YUI.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
                mods = G_ENV.mods;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
            if (loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
                //loader._config(Y.config);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
                loader.ignoreRegistered = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
                loader.onEnd = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
                loader.data = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
                loader.required = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
                loader.loadType = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
                loader = new Y.Loader(Y.config);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
                Y.Env._loader = loader;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
            if (mods && mods.loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
                lCore = [].concat(lCore, YUI.Env.loaderExtras);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
            YUI.Env.core = Y.Array.dedupe([].concat(YUI.Env.core, lCore));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
            return loader;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
        clobber = function(r, s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
            for (var i in s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
                if (s.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
                    r[i] = s[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
        ALREADY_DONE = { success: true };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
//  Stamp the documentElement (HTML) with a class of "yui-loaded" to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
//  enable styles that need to key off of JS being enabled.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
if (docEl && docClass.indexOf(DOC_LABEL) == -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
    if (docClass) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
        docClass += ' ';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
    docClass += DOC_LABEL;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
    docEl.className = docClass;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
if (VERSION.indexOf('@') > -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
    VERSION = '3.5.0'; // dev time hack for cdn test
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
proto = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
    Applies a new configuration object to the config of this YUI instance. This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
    will merge new group/module definitions, and will also update the loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
    cache if necessary. Updating `Y.config` directly will not update the cache.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
    @method applyConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
    @param {Object} o the configuration object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
    @since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
    applyConfig: function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
        o = o || NOOP;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
        var attr,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
            name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
            // detail,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
            config = this.config,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
            mods = config.modules,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
            groups = config.groups,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
            aliases = config.aliases,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
            loader = this.Env._loader;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
        for (name in o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
            if (o.hasOwnProperty(name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
                attr = o[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
                if (mods && name == 'modules') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
                    clobber(mods, attr);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
                } else if (aliases && name == 'aliases') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
                    clobber(aliases, attr);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
                } else if (groups && name == 'groups') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
                    clobber(groups, attr);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
                } else if (name == 'win') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
                    config[name] = (attr && attr.contentWindow) || attr;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
                    config.doc = config[name] ? config[name].document : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
                } else if (name == '_yuid') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
                    // preserve the guid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
                    config[name] = attr;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
        if (loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
            loader._config(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
    Old way to apply a config to this instance (calls `applyConfig` under the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
    hood).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
    @method _config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
    @param {Object} o The config to apply
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
    _config: function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
        this.applyConfig(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
    Initializes this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
    @method _init
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
    _init: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
        var filter, el,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
            Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
            G_ENV = YUI.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
            Env = Y.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
            prop;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
        The version number of this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
        This value is typically updated by a script when a YUI release is built,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
        so it may not reflect the correct version number when YUI is run from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
        the development source tree.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
        @property {String} version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
        **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
        Y.version = VERSION;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
        if (!Env) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
            Y.Env = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
                core: ['get', 'features', 'intl-base', 'yui-log', 'yui-log-nodejs', 'yui-later', 'loader-base', 'loader-rollup', 'loader-yui3'],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
                loaderExtras: ['loader-rollup', 'loader-yui3'],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
                mods: {}, // flat module map
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
                versions: {}, // version module map
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
                base: BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
                cdn: BASE + VERSION + '/build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
                // bootstrapped: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
                _idx: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
                _used: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
                _attached: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
                _exported: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
                _missed: [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
                _yidx: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
                _uidx: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
                _guidp: 'y',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
                _loaded: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
                // serviced: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
                // Regex in English:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
                // I'll start at the \b(yui).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
                // 1. Look in the test string for "yui" or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
                //    "yui-base" or "yui-davglass" or "yui-foobar" that comes after a word break.  That is, it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
                //    can't match "foyui" or "i_heart_yui". This can be anywhere in the string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
                // 2. After #1 must come a forward slash followed by the string matched in #1, so
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
                //    "yui-base/yui-base" or "yui-pants/yui-pants".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
                // 3. The second occurence of the #1 token can optionally be followed by "-debug" or "-min",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
                //    so "yui/yui-min", "yui/yui-debug", "yui-base/yui-base-debug". NOT "yui/yui-tshirt".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
                // 4. This is followed by ".js", so "yui/yui.js".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
                // 0. Going back to the beginning, now. If all that stuff in 1-4 comes after a "?" in the string,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
                //    then capture the junk between the LAST "&" and the string in 1-4.  So
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
                //    "blah?foo/yui/yui.js" will capture "foo/" and "blah?some/thing.js&3.3.0/build/yui-davglass/yui-davglass.js"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
                //    will capture "3.3.0/build/"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
                //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
                // Regex Exploded:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
                // (?:\?             Find a ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
                //   (?:[^&]*&)      followed by 0..n characters followed by an &
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
                //   *               in fact, find as many sets of characters followed by a & as you can
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
                //   ([^&]*)         capture the stuff after the last & in \1
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
                // )?                but it's ok if all this ?junk&more_junk stuff isn't even there
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
                // \b(               after a word break find either the string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
                //    yui(?:-\w+)?   "yui" optionally followed by a -, then more characters
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
                // )                 and store the yui-* string in \2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
                // \/\2              then comes a / followed by the yui-* string in \2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
                // (?:-(min|debug))? optionally followed by "-min" or "-debug"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
                // .js               and ending in ".js"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
                _BASE_RE: /(?:\?(?:[^&]*&)*([^&]*))?\b(yui(?:-\w+)?)\/\2(?:-(min|debug))?\.js/,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
                parseBasePath: function(src, pattern) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
                    var match = src.match(pattern),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
                        path, filter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
                    if (match) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
                        path = RegExp.leftContext || src.slice(0, src.indexOf(match[0]));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
                        // this is to set up the path to the loader.  The file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
                        // filter for loader should match the yui include.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
                        filter = match[3];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
                        // extract correct path for mixed combo urls
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
                        // http://yuilibrary.com/projects/yui3/ticket/2528423
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
                        if (match[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
                            path += '?' + match[1];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
                        path = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
                            filter: filter,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
                            path: path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
                        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
                    return path;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
                getBase: G_ENV && G_ENV.getBase ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
                        function(pattern) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
                            var nodes = (doc && doc.getElementsByTagName('script')) || [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
                                path = Env.cdn, parsed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
                                i, len, src;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
                            for (i = 0, len = nodes.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
                                src = nodes[i].src;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
                                if (src) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
                                    parsed = Y.Env.parseBasePath(src, pattern);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
                                    if (parsed) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
                                        filter = parsed.filter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
                                        path = parsed.path;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
                                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
                                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
                            // use CDN default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
                            return path;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
            Env = Y.Env;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
            Env._loaded[VERSION] = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
            if (G_ENV && Y !== YUI) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
                Env._yidx = ++G_ENV._yidx;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
                Env._guidp = ('yui_' + VERSION + '_' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
                             Env._yidx + '_' + time).replace(/[^a-z0-9_]+/g, '_');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
            } else if (YUI._YUI) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
                G_ENV = YUI._YUI.Env;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
                Env._yidx += G_ENV._yidx;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
                Env._uidx += G_ENV._uidx;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
                for (prop in G_ENV) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
                    if (!(prop in Env)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
                        Env[prop] = G_ENV[prop];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
                delete YUI._YUI;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
            Y.id = Y.stamp(Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
            instances[Y.id] = Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
        Y.constructor = YUI;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
        // configuration defaults
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
        Y.config = Y.config || {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
            bootstrap: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
            cacheUse: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
            debug: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
            doc: doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
            fetchCSS: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
            throwFail: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
            useBrowserConsole: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
            useNativeES5: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
            win: win,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
            global: Function('return this')()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
        //Register the CSS stamp element
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
        if (doc && !doc.getElementById(CSS_STAMP_EL)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
            el = doc.createElement('div');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
            el.innerHTML = '<div id="' + CSS_STAMP_EL + '" style="position: absolute !important; visibility: hidden !important"></div>';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
            YUI.Env.cssStampEl = el.firstChild;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
            if (doc.body) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
                doc.body.appendChild(YUI.Env.cssStampEl);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
                docEl.insertBefore(YUI.Env.cssStampEl, docEl.firstChild);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
        } else if (doc && doc.getElementById(CSS_STAMP_EL) && !YUI.Env.cssStampEl) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
            YUI.Env.cssStampEl = doc.getElementById(CSS_STAMP_EL);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
        Y.config.lang = Y.config.lang || 'en-US';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
        Y.config.base = YUI.config.base || Y.Env.getBase(Y.Env._BASE_RE);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
        if (!filter || (!('mindebug').indexOf(filter))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
            filter = 'min';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
        filter = (filter) ? '-' + filter : filter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
        Y.config.loaderPath = YUI.config.loaderPath || 'loader/loader' + filter + '.js';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
    Finishes the instance setup. Attaches whatever YUI modules were defined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
    at the time that this instance was created.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
    @method _setup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
    _setup: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
        var i, Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
            core = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
            mods = YUI.Env.mods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
            extras = Y.config.core || [].concat(YUI.Env.core); //Clone it..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
        for (i = 0; i < extras.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
            if (mods[extras[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
                core.push(extras[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
        Y._attach(['yui-base']);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
        Y._attach(core);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
        if (Y.Loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
            getLoader(Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
    Executes the named method on the specified YUI instance if that method is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
    whitelisted.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
    @method applyTo
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
    @param {String} id YUI instance id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
    @param {String} method Name of the method to execute. For example:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
        'Object.keys'.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
    @param {Array} args Arguments to apply to the method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
    @return {Mixed} Return value from the applied method, or `null` if the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
        specified instance was not found or the method was not whitelisted.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
    applyTo: function(id, method, args) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
        if (!(method in APPLY_TO_AUTH)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
            this.log(method + ': applyTo not allowed', 'warn', 'yui');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
            return null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   553
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   554
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   555
        var instance = instances[id], nest, m, i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   556
        if (instance) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   557
            nest = method.split('.');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   558
            m = instance;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   559
            for (i = 0; i < nest.length; i = i + 1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   560
                m = m[nest[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   561
                if (!m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   562
                    this.log('applyTo not found: ' + method, 'warn', 'yui');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   563
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   564
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   565
            return m && m.apply(instance, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   566
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   567
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   568
        return null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   569
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   570
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   571
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   572
Registers a YUI module and makes it available for use in a `YUI().use()` call or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   573
as a dependency for other modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   574
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   575
The easiest way to create a first-class YUI module is to use
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   576
<a href="http://yui.github.com/shifter/">Shifter</a>, the YUI component build
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   577
tool.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   578
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   579
Shifter will automatically wrap your module code in a `YUI.add()` call along
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   580
with any configuration info required for the module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   581
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   582
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   583
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   584
    YUI.add('davglass', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   585
        Y.davglass = function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   586
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   587
    }, '3.4.0', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   588
        requires: ['harley-davidson', 'mt-dew']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   589
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   590
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   591
@method add
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   592
@param {String} name Module name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   593
@param {Function} fn Function containing module code. This function will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   594
    executed whenever the module is attached to a specific YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   595
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   596
    @param {YUI} fn.Y The YUI instance to which this module is attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   597
    @param {String} fn.name Name of the module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   598
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   599
@param {String} version Module version number. This is currently used only for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   600
    informational purposes, and is not used internally by YUI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   601
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   602
@param {Object} [config] Module config.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   603
    @param {Array} [config.requires] Array of other module names that must be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   604
        attached before this module can be attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   605
    @param {Array} [config.optional] Array of optional module names that should
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   606
        be attached before this module is attached if they've already been
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   607
        loaded. If the `loadOptional` YUI option is `true`, optional modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   608
        that have not yet been loaded will be loaded just as if they were hard
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   609
        requirements.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   610
    @param {Array} [config.use] Array of module names that are included within
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   611
        or otherwise provided by this module, and which should be attached
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   612
        automatically when this module is attached. This makes it possible to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   613
        create "virtual rollup" modules that simply attach a collection of other
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   614
        modules or submodules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   615
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   616
@return {YUI} This YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   617
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   618
    add: function(name, fn, version, details) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   619
        details = details || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   620
        var env = YUI.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   621
            mod = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   622
                name: name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   623
                fn: fn,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   624
                version: version,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   625
                details: details
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   626
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   627
            //Instance hash so we don't apply it to the same instance twice
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   628
            applied = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   629
            loader, inst,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   630
            i, versions = env.versions;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   631
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   632
        env.mods[name] = mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   633
        versions[version] = versions[version] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   634
        versions[version][name] = mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   635
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   636
        for (i in instances) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   637
            if (instances.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   638
                inst = instances[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   639
                if (!applied[inst.id]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   640
                    applied[inst.id] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   641
                    loader = inst.Env._loader;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   642
                    if (loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   643
                        if (!loader.moduleInfo[name] || loader.moduleInfo[name].temp) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   644
                            loader.addModule(details, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   645
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   646
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   647
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   648
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   649
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   650
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   651
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   652
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   653
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   654
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   655
    Executes the callback function associated with each required module,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   656
    attaching the module to this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   657
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   658
    @method _attach
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   659
    @param {Array} r The array of modules to attach
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   660
    @param {Boolean} [moot=false] If `true`, don't throw a warning if the module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   661
        is not attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   662
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   663
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   664
    _attach: function(r, moot) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   665
        var i, name, mod, details, req, use, after,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   666
            mods = YUI.Env.mods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   667
            aliases = YUI.Env.aliases,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   668
            Y = this, j,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   669
            cache = YUI.Env._renderedMods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   670
            loader = Y.Env._loader,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   671
            done = Y.Env._attached,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   672
            exported = Y.Env._exported,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   673
            len = r.length, loader, def, go,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   674
            c = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   675
            modArgs, esCompat, reqlen,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   676
            condition,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   677
            __exports__, __imports__;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   678
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   679
        //Check for conditional modules (in a second+ instance) and add their requirements
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   680
        //TODO I hate this entire method, it needs to be fixed ASAP (3.5.0) ^davglass
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   681
        for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   682
            name = r[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   683
            mod = mods[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   684
            c.push(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   685
            if (loader && loader.conditions[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   686
                for (j in loader.conditions[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   687
                    if (loader.conditions[name].hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   688
                        def = loader.conditions[name][j];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   689
                        go = def && ((def.ua && Y.UA[def.ua]) || (def.test && def.test(Y)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   690
                        if (go) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   691
                            c.push(def.name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   692
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   693
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   694
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   695
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   696
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   697
        r = c;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   698
        len = r.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   699
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   700
        for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   701
            if (!done[r[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   702
                name = r[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   703
                mod = mods[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   704
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   705
                if (aliases && aliases[name] && !mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   706
                    Y._attach(aliases[name]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   707
                    continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   708
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   709
                if (!mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   710
                    if (loader && loader.moduleInfo[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   711
                        mod = loader.moduleInfo[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   712
                        moot = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   713
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   714
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   715
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   716
                    //if (!loader || !loader.moduleInfo[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   717
                    //if ((!loader || !loader.moduleInfo[name]) && !moot) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   718
                    if (!moot && name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   719
                        if ((name.indexOf('skin-') === -1) && (name.indexOf('css') === -1)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   720
                            Y.Env._missed.push(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   721
                            Y.Env._missed = Y.Array.dedupe(Y.Env._missed);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   722
                            Y.message('NOT loaded: ' + name, 'warn', 'yui');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   723
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   724
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   725
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   726
                    done[name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   727
                    //Don't like this, but in case a mod was asked for once, then we fetch it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   728
                    //We need to remove it from the missed list ^davglass
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   729
                    for (j = 0; j < Y.Env._missed.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   730
                        if (Y.Env._missed[j] === name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   731
                            Y.message('Found: ' + name + ' (was reported as missing earlier)', 'warn', 'yui');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   732
                            Y.Env._missed.splice(j, 1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   733
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   734
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   735
                    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   736
                        If it's a temp module, we need to redo it's requirements if it's already loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   737
                        since it may have been loaded by another instance and it's dependencies might
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   738
                        have been redefined inside the fetched file.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   739
                    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   740
                    if (loader && cache && cache[name] && cache[name].temp) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   741
                        loader.getRequires(cache[name]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   742
                        req = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   743
                        for (j in loader.moduleInfo[name].expanded_map) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   744
                            if (loader.moduleInfo[name].expanded_map.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   745
                                req.push(j);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   746
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   747
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   748
                        Y._attach(req);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   749
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   750
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   751
                    details = mod.details;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   752
                    req = details.requires;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   753
                    esCompat = details.es;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   754
                    use = details.use;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   755
                    after = details.after;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   756
                    //Force Intl load if there is a language (Loader logic) @todo fix this shit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   757
                    if (details.lang) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   758
                        req = req || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   759
                        req.unshift('intl');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   760
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   761
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   762
                    if (req) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   763
                        reqlen = req.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   764
                        for (j = 0; j < reqlen; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   765
                            if (!done[req[j]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   766
                                if (!Y._attach(req)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   767
                                    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   768
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   769
                                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   770
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   771
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   772
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   773
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   774
                    if (after) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   775
                        for (j = 0; j < after.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   776
                            if (!done[after[j]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   777
                                if (!Y._attach(after, true)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   778
                                    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   779
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   780
                                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   781
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   782
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   783
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   784
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   785
                    if (mod.fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   786
                        modArgs = [Y, name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   787
                        if (esCompat) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   788
                            __imports__ = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   789
                            __exports__ = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   790
                            // passing `exports` and `imports` onto the module function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   791
                            modArgs.push(__imports__, __exports__);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   792
                            if (req) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   793
                                reqlen = req.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   794
                                for (j = 0; j < reqlen; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   795
                                    __imports__[req[j]] = exported.hasOwnProperty(req[j]) ? exported[req[j]] : Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   796
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   797
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   798
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   799
                        if (Y.config.throwFail) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   800
                            __exports__ = mod.fn.apply(esCompat ? undefined : mod, modArgs);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   801
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   802
                            try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   803
                                __exports__ = mod.fn.apply(esCompat ? undefined : mod, modArgs);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   804
                            } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   805
                                Y.error('Attach error: ' + name, e, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   806
                                return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   807
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   808
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   809
                        if (esCompat) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   810
                            // store the `exports` in case others `es` modules requires it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   811
                            exported[name] = __exports__;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   812
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   813
                            // If an ES module is conditionally loaded and set
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   814
                            // to be used "instead" another module, replace the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   815
                            // trigger module's content with the conditionally
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   816
                            // loaded one so the values returned by require()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   817
                            // still makes sense
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   818
                            condition = mod.details.condition;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   819
                            if (condition && condition.when === 'instead') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   820
                                exported[condition.trigger] = __exports__;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   821
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   822
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   823
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   824
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   825
                    if (use) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   826
                        for (j = 0; j < use.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   827
                            if (!done[use[j]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   828
                                if (!Y._attach(use)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   829
                                    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   830
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   831
                                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   832
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   833
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   834
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   835
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   836
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   837
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   838
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   839
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   840
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   841
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   842
        return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   843
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   844
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   845
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   846
    Delays the `use` callback until another event has taken place such as
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   847
    `window.onload`, `domready`, `contentready`, or `available`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   848
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   849
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   850
    @method _delayCallback
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   851
    @param {Function} cb The original `use` callback.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   852
    @param {String|Object} until Either an event name ('load', 'domready', etc.)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   853
        or an object containing event/args keys for contentready/available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   854
    @return {Function}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   855
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   856
    _delayCallback: function(cb, until) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   857
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   858
        var Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   859
            mod = ['event-base'];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   860
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   861
        until = (Y.Lang.isObject(until) ? until : { event: until });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   862
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   863
        if (until.event === 'load') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   864
            mod.push('event-synthetic');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   865
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   866
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   867
        return function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   868
            var args = arguments;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   869
            Y._use(mod, function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   870
                Y.on(until.event, function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   871
                    args[1].delayUntil = until.event;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   872
                    cb.apply(Y, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   873
                }, until.args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   874
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   875
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   876
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   877
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   878
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   879
    Attaches one or more modules to this YUI instance. When this is executed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   880
    the requirements of the desired modules are analyzed, and one of several
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   881
    things can happen:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   882
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   883
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   884
      * All required modules have already been loaded, and just need to be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   885
        attached to this YUI instance. In this case, the `use()` callback will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   886
        be executed synchronously after the modules are attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   887
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   888
      * One or more modules have not yet been loaded, or the Get utility is not
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   889
        available, or the `bootstrap` config option is `false`. In this case,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   890
        a warning is issued indicating that modules are missing, but all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   891
        available modules will still be attached and the `use()` callback will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   892
        be executed synchronously.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   893
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   894
      * One or more modules are missing and the Loader is not available but the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   895
        Get utility is, and `bootstrap` is not `false`. In this case, the Get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   896
        utility will be used to load the Loader, and we will then proceed to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   897
        the following state:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   898
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   899
      * One or more modules are missing and the Loader is available. In this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   900
        case, the Loader will be used to resolve the dependency tree for the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   901
        missing modules and load them and their dependencies. When the Loader is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   902
        finished loading modules, the `use()` callback will be executed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   903
        asynchronously.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   904
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   905
    @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   906
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   907
        // Loads and attaches dd and its dependencies.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   908
        YUI().use('dd', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   909
            // ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   910
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   911
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   912
        // Loads and attaches dd and node as well as all of their dependencies.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   913
        YUI().use(['dd', 'node'], function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   914
            // ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   915
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   916
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   917
        // Attaches all modules that have already been loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   918
        YUI().use('*', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   919
            // ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   920
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   921
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   922
        // Attaches a gallery module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   923
        YUI().use('gallery-yql', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   924
            // ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   925
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   926
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   927
        // Attaches a YUI 2in3 module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   928
        YUI().use('yui2-datatable', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   929
            // ...
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   930
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   931
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   932
    @method use
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   933
    @param {String|Array} modules* One or more module names to attach.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   934
    @param {Function} [callback] Callback function to be executed once all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   935
        specified modules and their dependencies have been attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   936
    @param {YUI} callback.Y The YUI instance created for this sandbox.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   937
    @param {Object} callback.status Object containing `success`, `msg` and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   938
        `data` properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   939
    @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   940
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   941
    use: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   942
        var args = SLICE.call(arguments, 0),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   943
            callback = args[args.length - 1],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   944
            Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   945
            i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   946
            name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   947
            Env = Y.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   948
            provisioned = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   949
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   950
        // The last argument supplied to use can be a load complete callback
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   951
        if (Y.Lang.isFunction(callback)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   952
            args.pop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   953
            if (Y.config.delayUntil) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   954
                callback = Y._delayCallback(callback, Y.config.delayUntil);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   955
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   956
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   957
            callback = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   958
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   959
        if (Y.Lang.isArray(args[0])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   960
            args = args[0];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   961
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   962
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   963
        if (Y.config.cacheUse) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   964
            while ((name = args[i++])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   965
                if (!Env._attached[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   966
                    provisioned = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   967
                    break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   968
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   969
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   970
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   971
            if (provisioned) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   972
                if (args.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   973
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   974
                Y._notify(callback, ALREADY_DONE, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   975
                return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   976
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   977
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   978
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   979
        if (Y._loading) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   980
            Y._useQueue = Y._useQueue || new Y.Queue();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   981
            Y._useQueue.add([args, callback]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   982
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   983
            Y._use(args, function(Y, response) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   984
                Y._notify(callback, response, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   985
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   986
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   987
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   988
        return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   989
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   990
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   991
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   992
    Sugar for loading both legacy and ES6-based YUI modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   993
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   994
    @method require
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   995
    @param {String} [modules*] List of module names to import or a single
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   996
        module name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   997
    @param {Function} callback Callback that gets called once all the modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   998
        were loaded. Each parameter of the callback is the export value of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   999
        corresponding module in the list. If the module is a legacy YUI module,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1000
        the YUI instance is used instead of the module exports.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1001
    @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1002
    ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1003
    YUI().require(['es6-set'], function (Y, imports) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1004
        var Set = imports.Set,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1005
            set = new Set();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1006
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1007
    ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1008
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1009
    require: function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1010
        var args = SLICE.call(arguments),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1011
            callback;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1012
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1013
        if (typeof args[args.length - 1] === 'function') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1014
            callback = args.pop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1015
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1016
            // only add the callback if one was provided
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1017
            // YUI().require('foo'); is valid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1018
            args.push(function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1019
                var i, length = args.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1020
                    exported = Y.Env._exported,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1021
                    __imports__ = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1022
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1023
                // Get only the imports requested as arguments
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1024
                for (i = 0; i < length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1025
                    if (exported.hasOwnProperty(args[i])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1026
                        __imports__[args[i]] = exported[args[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1027
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1028
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1029
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1030
                // Using `undefined` because:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1031
                // - Using `Y.config.global` would force the value of `this` to be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1032
                //   the global object even in strict mode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1033
                // - Using `Y` goes against the goal of moving away from a shared
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1034
                //   object and start thinking in terms of imported and exported
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1035
                //   objects
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1036
                callback.call(undefined, Y, __imports__);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1037
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1038
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1039
        // Do not return the Y object. This makes it hard to follow this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1040
        // traditional pattern:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1041
        //   var Y = YUI().use(...);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1042
        // This is a good idea in the light of ES6 modules, to avoid working
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1043
        // in the global scope.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1044
        // This also leaves the door open for returning a promise, once the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1045
        // YUI loader is based on the ES6 loader which uses
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1046
        // loader.import(...).then(...)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1047
        this.use.apply(this, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1048
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1049
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1050
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1051
    Handles Loader notifications about attachment/load errors.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1052
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1053
    @method _notify
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1054
    @param {Function} callback Callback to pass to `Y.config.loadErrorFn`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1055
    @param {Object} response Response returned from Loader.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1056
    @param {Array} args Arguments passed from Loader.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1057
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1058
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1059
    _notify: function(callback, response, args) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1060
        if (!response.success && this.config.loadErrorFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1061
            this.config.loadErrorFn.call(this, this, callback, response, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1062
        } else if (callback) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1063
            if (this.Env._missed && this.Env._missed.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1064
                response.msg = 'Missing modules: ' + this.Env._missed.join();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1065
                response.success = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1066
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1067
            if (this.config.throwFail) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1068
                callback(this, response);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1069
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1070
                try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1071
                    callback(this, response);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1072
                } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1073
                    this.error('use callback error', e, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1074
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1075
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1076
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1077
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1078
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1079
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1080
    Called from the `use` method queue to ensure that only one set of loading
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1081
    logic is performed at a time.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1082
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1083
    @method _use
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1084
    @param {String} args* One or more modules to attach.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1085
    @param {Function} [callback] Function to call once all required modules have
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1086
        been attached.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1087
    @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1088
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1089
    _use: function(args, callback) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1090
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1091
        if (!this.Array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1092
            this._attach(['yui-base']);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1093
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1094
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1095
        var len, loader, handleBoot,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1096
            Y = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1097
            G_ENV = YUI.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1098
            mods = G_ENV.mods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1099
            Env = Y.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1100
            used = Env._used,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1101
            aliases = G_ENV.aliases,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1102
            queue = G_ENV._loaderQueue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1103
            firstArg = args[0],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1104
            YArray = Y.Array,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1105
            config = Y.config,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1106
            boot = config.bootstrap,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1107
            missing = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1108
            i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1109
            r = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1110
            ret = true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1111
            fetchCSS = config.fetchCSS,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1112
            process = function(names, skip) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1113
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1114
                var i = 0, a = [], name, len, m, req, use;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1115
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1116
                if (!names.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1117
                    return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1118
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1119
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1120
                if (aliases) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1121
                    len = names.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1122
                    for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1123
                        if (aliases[names[i]] && !mods[names[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1124
                            a = [].concat(a, aliases[names[i]]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1125
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1126
                            a.push(names[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1127
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1128
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1129
                    names = a;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1130
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1131
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1132
                len = names.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1134
                for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1135
                    name = names[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1136
                    if (!skip) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1137
                        r.push(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1138
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1139
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1140
                    // only attach a module once
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1141
                    if (used[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1142
                        continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1143
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1144
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1145
                    m = mods[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1146
                    req = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1147
                    use = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1148
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1149
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1150
                        used[name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1151
                        req = m.details.requires;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1152
                        use = m.details.use;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1153
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1154
                        // CSS files don't register themselves, see if it has
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1155
                        // been loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1156
                        if (!G_ENV._loaded[VERSION][name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1157
                            missing.push(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1158
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1159
                            used[name] = true; // probably css
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1160
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1161
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1162
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1163
                    // make sure requirements are attached
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1164
                    if (req && req.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1165
                        process(req);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1166
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1167
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1168
                    // make sure we grab the submodule dependencies too
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1169
                    if (use && use.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1170
                        process(use, 1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1171
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1172
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1173
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1174
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1175
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1176
            handleLoader = function(fromLoader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1177
                var response = fromLoader || {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1178
                        success: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1179
                        msg: 'not dynamic'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1180
                    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1181
                    redo, origMissing,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1182
                    ret = true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1183
                    data = response.data;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1184
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1185
                Y._loading = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1186
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1187
                if (data) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1188
                    origMissing = missing;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1189
                    missing = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1190
                    r = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1191
                    process(data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1192
                    redo = missing.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1193
                    if (redo) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1194
                        if ([].concat(missing).sort().join() ==
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1195
                                origMissing.sort().join()) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1196
                            redo = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1197
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1198
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1199
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1200
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1201
                if (redo && data) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1202
                    Y._loading = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1203
                    Y._use(missing, function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1204
                        if (Y._attach(data)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1205
                            Y._notify(callback, response, data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1206
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1207
                    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1208
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1209
                    if (data) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1210
                        ret = Y._attach(data);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1211
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1212
                    if (ret) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1213
                        Y._notify(callback, response, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1214
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1215
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1216
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1217
                if (Y._useQueue && Y._useQueue.size() && !Y._loading) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1218
                    Y._use.apply(Y, Y._useQueue.next());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1219
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1220
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1221
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1222
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1223
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1224
        // YUI().use('*'); // bind everything available
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1225
        if (firstArg === '*') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1226
            args = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1227
            for (i in mods) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1228
                if (mods.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1229
                    args.push(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1230
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1231
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1232
            ret = Y._attach(args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1233
            if (ret) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1234
                handleLoader();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1235
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1236
            return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1237
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1238
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1239
        if ((mods.loader || mods['loader-base']) && !Y.Loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1240
            Y._attach(['loader' + ((!mods.loader) ? '-base' : '')]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1241
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1242
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1243
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1244
        // use loader to expand dependencies and sort the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1245
        // requirements if it is available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1246
        if (boot && Y.Loader && args.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1247
            loader = getLoader(Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1248
            loader.require(args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1249
            loader.ignoreRegistered = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1250
            loader._boot = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1251
            loader.calculate(null, (fetchCSS) ? null : 'js');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1252
            args = loader.sorted;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1253
            loader._boot = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1254
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1255
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1256
        process(args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1257
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1258
        len = missing.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1259
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1260
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1261
        if (len) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1262
            missing = YArray.dedupe(missing);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1263
            len = missing.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1264
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1265
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1266
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1267
        // dynamic load
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1268
        if (boot && len && Y.Loader) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1269
            Y._loading = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1270
            loader = getLoader(Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1271
            loader.onEnd = handleLoader;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1272
            loader.context = Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1273
            loader.data = args;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1274
            loader.ignoreRegistered = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1275
            loader.require(missing);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1276
            loader.insert(null, (fetchCSS) ? null : 'js');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1277
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1278
        } else if (boot && len && Y.Get && !Env.bootstrapped) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1279
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1280
            Y._loading = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1281
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1282
            handleBoot = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1283
                Y._loading = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1284
                queue.running = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1285
                Env.bootstrapped = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1286
                G_ENV._bootstrapping = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1287
                if (Y._attach(['loader'])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1288
                    Y._use(args, callback);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1289
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1290
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1291
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1292
            if (G_ENV._bootstrapping) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1293
                queue.add(handleBoot);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1294
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1295
                G_ENV._bootstrapping = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1296
                Y.Get.script(config.base + config.loaderPath, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1297
                    onEnd: handleBoot
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1298
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1299
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1300
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1301
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1302
            ret = Y._attach(args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1303
            if (ret) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1304
                handleLoader();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1305
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1306
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1307
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1308
        return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1309
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1310
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1311
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1312
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1313
    Utility method for safely creating namespaces if they don't already exist.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1314
    May be called statically on the YUI global object or as a method on a YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1315
    instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1317
    When called statically, a namespace will be created on the YUI global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1318
    object:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1319
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1320
        // Create `YUI.your.namespace.here` as nested objects, preserving any
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1321
        // objects that already exist instead of overwriting them.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1322
        YUI.namespace('your.namespace.here');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1323
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1324
    When called as a method on a YUI instance, a namespace will be created on
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1325
    that instance:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1326
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1327
        // Creates `Y.property.package`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1328
        Y.namespace('property.package');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1329
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1330
    Dots in the input string cause `namespace` to create nested objects for each
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1331
    token. If any part of the requested namespace already exists, the current
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1332
    object will be left in place and will not be overwritten. This allows
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1333
    multiple calls to `namespace` to preserve existing namespaced properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1334
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1335
    If the first token in the namespace string is "YAHOO", that token is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1336
    discarded. This is legacy behavior for backwards compatibility with YUI 2.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1337
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1338
    Be careful with namespace tokens. Reserved words may work in some browsers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1339
    and not others. For instance, the following will fail in some browsers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1340
    because the supported version of JavaScript reserves the word "long":
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1341
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1342
        Y.namespace('really.long.nested.namespace');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1343
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1344
    Note: If you pass multiple arguments to create multiple namespaces, only the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1345
    last one created is returned from this function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1346
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1347
    @method namespace
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1348
    @param {String} namespace* One or more namespaces to create.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1349
    @return {Object} Reference to the last namespace object created.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1350
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1351
    namespace: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1352
        var a = arguments, o, i = 0, j, d, arg;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1353
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1354
        for (; i < a.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1355
            o = this; //Reset base object per argument or it will get reused from the last
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1356
            arg = a[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1357
            if (arg.indexOf(PERIOD) > -1) { //Skip this if no "." is present
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1358
                d = arg.split(PERIOD);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1359
                for (j = (d[0] == 'YAHOO') ? 1 : 0; j < d.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1360
                    o[d[j]] = o[d[j]] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1361
                    o = o[d[j]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1362
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1363
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1364
                o[arg] = o[arg] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1365
                o = o[arg]; //Reset base object to the new object so it's returned
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1366
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1367
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1368
        return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1369
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1370
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1371
    // this is replaced if the log module is included
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1372
    log: NOOP,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1373
    message: NOOP,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1374
    // this is replaced if the dump module is included
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1375
    dump: function (o) { return ''+o; },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1376
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1377
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1378
    Reports an error.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1379
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1380
    The reporting mechanism is controlled by the `throwFail` configuration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1381
    attribute. If `throwFail` is falsy, the message is logged. If `throwFail` is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1382
    truthy, a JS exception is thrown.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1383
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1384
    If an `errorFn` is specified in the config it must return `true` to indicate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1385
    that the exception was handled and keep it from being thrown.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1386
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1387
    @method error
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1388
    @param {String} msg Error message.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1389
    @param {Error|String} [e] JavaScript error object or an error string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1390
    @param {String} [src] Source of the error (such as the name of the module in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1391
        which the error occurred).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1392
    @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1393
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1394
    error: function(msg, e, src) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1395
        //TODO Add check for window.onerror here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1396
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1397
        var Y = this, ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1398
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1399
        if (Y.config.errorFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1400
            ret = Y.config.errorFn.apply(Y, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1401
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1402
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1403
        if (!ret) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1404
            throw (e || new Error(msg));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1405
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1406
            Y.message(msg, 'error', ''+src); // don't scrub this one
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1407
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1408
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1409
        return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1410
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1411
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1412
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1413
    Generates an id string that is unique among all YUI instances in this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1414
    execution context.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1415
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1416
    @method guid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1417
    @param {String} [pre] Prefix.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1418
    @return {String} Unique id.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1419
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1420
    guid: function(pre) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1421
        var id = this.Env._guidp + '_' + (++this.Env._uidx);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1422
        return (pre) ? (pre + id) : id;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1423
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1424
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1425
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1426
    Returns a unique id associated with the given object and (if *readOnly* is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1427
    falsy) stamps the object with that id so it can be identified in the future.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1428
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1429
    Stamping an object involves adding a `_yuid` property to it that contains
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1430
    the object's id. One exception to this is that in Internet Explorer, DOM
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1431
    nodes have a `uniqueID` property that contains a browser-generated unique
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1432
    id, which will be used instead of a YUI-generated id when available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1433
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1434
    @method stamp
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1435
    @param {Object} o Object to stamp.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1436
    @param {Boolean} readOnly If truthy and the given object has not already
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1437
        been stamped, the object will not be modified and `null` will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1438
        returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1439
    @return {String} Object's unique id, or `null` if *readOnly* was truthy and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1440
        the given object was not already stamped.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1441
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1442
    stamp: function(o, readOnly) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1443
        var uid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1444
        if (!o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1445
            return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1446
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1447
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1448
        // IE generates its own unique ID for dom nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1449
        // The uniqueID property of a document node returns a new ID
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1450
        if (o.uniqueID && o.nodeType && o.nodeType !== 9) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1451
            uid = o.uniqueID;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1452
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1453
            uid = (typeof o === 'string') ? o : o._yuid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1454
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1455
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1456
        if (!uid) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1457
            uid = this.guid();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1458
            if (!readOnly) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1459
                try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1460
                    o._yuid = uid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1461
                } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1462
                    uid = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1463
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1464
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1465
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1466
        return uid;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1467
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1468
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1469
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1470
    Destroys this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1471
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1472
    @method destroy
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1473
    @since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1474
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1475
    destroy: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1476
        var Y = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1477
        if (Y.Event) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1478
            Y.Event._unload();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1479
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1480
        delete instances[Y.id];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1481
        delete Y.Env;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1482
        delete Y.config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1483
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1484
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1485
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1486
    Safe `instanceof` wrapper that works around a memory leak in IE when the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1487
    object being tested is `window` or `document`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1488
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1489
    Unless you are testing objects that may be `window` or `document`, you
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1490
    should use the native `instanceof` operator instead of this method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1491
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1492
    @method instanceOf
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1493
    @param {Object} o Object to check.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1494
    @param {Object} type Class to check against.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1495
    @since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1496
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1497
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1498
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1499
    YUI.prototype = proto;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1500
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1501
    // inheritance utilities are not available yet
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1502
    for (prop in proto) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1503
        if (proto.hasOwnProperty(prop)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1504
            YUI[prop] = proto[prop];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1505
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1506
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1507
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1508
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1509
    Applies a configuration to all YUI instances in this execution context.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1510
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1511
    The main use case for this method is in "mashups" where several third-party
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1512
    scripts need to write to a global YUI config, but cannot share a single
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1513
    centrally-managed config object. This way they can all call
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1514
    `YUI.applyConfig({})` instead of overwriting the single global config.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1515
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1516
    @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1517
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1518
        YUI.applyConfig({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1519
            modules: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1520
                davglass: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1521
                    fullpath: './davglass.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1522
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1523
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1524
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1525
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1526
        YUI.applyConfig({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1527
            modules: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1528
                foo: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1529
                    fullpath: './foo.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1530
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1531
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1532
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1533
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1534
        YUI().use('davglass', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1535
            // Module davglass will be available here.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1536
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1537
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1538
    @method applyConfig
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1539
    @param {Object} o Configuration object to apply.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1540
    @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1541
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1542
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1543
    YUI.applyConfig = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1544
        if (!o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1545
            return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1546
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1547
        //If there is a GlobalConfig, apply it first to set the defaults
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1548
        if (YUI.GlobalConfig) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1549
            this.prototype.applyConfig.call(this, YUI.GlobalConfig);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1550
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1551
        //Apply this config to it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1552
        this.prototype.applyConfig.call(this, o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1553
        //Reset GlobalConfig to the combined config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1554
        YUI.GlobalConfig = this.config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1555
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1556
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1557
    // set up the environment
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1558
    YUI._init();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1559
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1560
    if (hasWin) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1561
        add(doc, 'DOMContentLoaded', handleReady);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1562
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1563
        // add a window load event at load time so we can capture
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1564
        // the case where it fires before dynamic loading is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1565
        // complete.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1566
        add(window, 'load', handleLoad);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1567
    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1568
        handleReady();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1569
        handleLoad();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1570
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1571
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1572
    YUI.Env.add = add;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1573
    YUI.Env.remove = remove;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1574
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1575
    /*global exports*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1576
    // Support the CommonJS method for exporting our single global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1577
    if (typeof exports == 'object') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1578
        exports.YUI = YUI;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1579
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1580
        * Set a method to be called when `Get.script` is called in Node.js
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1581
        * `Get` will open the file, then pass it's content and it's path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1582
        * to this method before attaching it. Commonly used for code coverage
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1583
        * instrumentation. <strong>Calling this multiple times will only
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1584
        * attach the last hook method</strong>. This method is only
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1585
        * available in Node.js.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1586
        * @method setLoadHook
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1587
        * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1588
        * @param {Function} fn The function to set
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1589
        * @param {String} fn.data The content of the file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1590
        * @param {String} fn.path The file path of the file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1591
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1592
        YUI.setLoadHook = function(fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1593
            YUI._getLoadHook = fn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1594
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1595
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1596
        * Load hook for `Y.Get.script` in Node.js, see `YUI.setLoadHook`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1597
        * @method _getLoadHook
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1598
        * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1599
        * @param {String} data The content of the file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1600
        * @param {String} path The file path of the file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1601
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1602
        YUI._getLoadHook = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1603
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1604
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1605
    YUI.Env[VERSION] = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1606
}());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1607
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1608
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1609
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1610
Config object that contains all of the configuration options for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1611
this `YUI` instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1612
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1613
This object is supplied by the implementer when instantiating YUI. Some
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1614
properties have default values if they are not supplied by the implementer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1615
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1616
This object should not be updated directly because some values are cached. Use
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1617
`applyConfig()` to update the config object on a YUI instance that has already
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1618
been configured.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1619
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1620
@class config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1621
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1622
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1623
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1624
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1625
If `true` (the default), YUI will "bootstrap" the YUI Loader and module metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1626
if they're needed to load additional dependencies and aren't already available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1627
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1628
Setting this to `false` will prevent YUI from automatically loading the Loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1629
and module metadata, so you will need to manually ensure that they're available
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1630
or handle dependency resolution yourself.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1631
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1632
@property {Boolean} bootstrap
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1633
@default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1634
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1635
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1636
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1637
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1638
@property {Object} filters
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1639
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1640
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1641
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1642
If `true`, YUI will use a combo handler to load multiple modules in as few
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1643
requests as possible.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1644
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1645
The YUI CDN (which YUI uses by default) supports combo handling, but other
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1646
servers may not. If the server from which you're loading YUI does not support
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1647
combo handling, set this to `false`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1648
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1649
Providing a value for the `base` config property will cause `combine` to default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1650
to `false` instead of `true`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1651
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1652
@property {Boolean} combine
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1653
@default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1654
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1655
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1656
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1657
Array of module names that should never be dynamically loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1658
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1659
@property {String[]} ignore
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1660
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1661
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1662
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1663
Array of module names that should always be loaded when required, even if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1664
already present on the page.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1665
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1666
@property {String[]} force
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1667
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1668
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1669
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1670
DOM element or id that should be used as the insertion point for dynamically
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1671
added `<script>` and `<link>` nodes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1672
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1673
@property {HTMLElement|String} insertBefore
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1674
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1675
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1676
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1677
Object hash containing attributes to add to dynamically added `<script>` nodes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1678
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1679
@property {Object} jsAttributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1680
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1681
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1682
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1683
Object hash containing attributes to add to dynamically added `<link>` nodes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1684
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1685
@property {Object} cssAttributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1686
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1687
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1688
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1689
Timeout in milliseconds before a dynamic JS or CSS request will be considered a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1690
failure. If not set, no timeout will be enforced.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1691
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1692
@property {Number} timeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1693
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1694
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1695
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1696
Callback for the 'CSSComplete' event. When dynamically loading YUI components
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1697
with CSS, this property fires when the CSS is finished loading.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1698
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1699
This provides an opportunity to enhance the presentation of a loading page a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1700
little bit before the entire loading process is done.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1702
@property {Function} onCSS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1703
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1704
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1705
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1706
A hash of module definitions to add to the list of available YUI modules. These
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1707
modules can then be dynamically loaded via the `use()` method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1708
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1709
This is a hash in which keys are module names and values are objects containing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1710
module metadata.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1711
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1712
See `Loader.addModule()` for the supported module metadata fields. Also see
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1713
`groups`, which provides a way to configure the base and combo spec for a set of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1714
modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1715
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1716
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1717
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1718
    modules: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1719
        mymod1: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1720
            requires: ['node'],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1721
            fullpath: '/mymod1/mymod1.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1722
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1723
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1724
        mymod2: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1725
            requires: ['mymod1'],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1726
            fullpath: '/mymod2/mymod2.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1727
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1728
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1729
        mymod3: '/js/mymod3.js',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1730
        mycssmod: '/css/mycssmod.css'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1731
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1732
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1733
@property {Object} modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1734
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1735
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1736
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1737
Aliases are dynamic groups of modules that can be used as shortcuts.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1738
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1739
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1740
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1741
    YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1742
        aliases: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1743
            davglass: [ 'node', 'yql', 'dd' ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1744
            mine: [ 'davglass', 'autocomplete']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1745
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1746
    }).use('mine', function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1747
        // Node, YQL, DD & AutoComplete available here.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1748
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1749
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1750
@property {Object} aliases
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1751
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1752
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1753
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1754
A hash of module group definitions.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1755
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1756
For each group you can specify a list of modules and the base path and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1757
combo spec to use when dynamically loading the modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1758
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1759
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1760
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1761
    groups: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1762
        yui2: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1763
            // specify whether or not this group has a combo service
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1764
            combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1765
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1766
            // The comboSeperator to use with this group's combo handler
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1767
            comboSep: ';',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1768
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1769
            // The maxURLLength for this server
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1770
            maxURLLength: 500,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1771
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1772
            // the base path for non-combo paths
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1773
            base: 'http://yui.yahooapis.com/2.8.0r4/build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1774
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1775
            // the path to the combo service
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1776
            comboBase: 'http://yui.yahooapis.com/combo?',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1777
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1778
            // a fragment to prepend to the path attribute when
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1779
            // when building combo urls
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1780
            root: '2.8.0r4/build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1781
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1782
            // the module definitions
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1783
            modules:  {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1784
                yui2_yde: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1785
                    path: "yahoo-dom-event/yahoo-dom-event.js"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1786
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1787
                yui2_anim: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1788
                    path: "animation/animation.js",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1789
                    requires: ['yui2_yde']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1790
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1791
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1792
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1793
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1794
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1795
@property {Object} groups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1796
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1797
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1798
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1799
Path to the Loader JS file, relative to the `base` path.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1800
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1801
This is used to dynamically bootstrap the Loader when it's needed and isn't yet
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1802
available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1803
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1804
@property {String} loaderPath
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1805
@default "loader/loader-min.js"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1806
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1807
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1808
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1809
If `true`, YUI will attempt to load CSS dependencies and skins. Set this to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1810
`false` to prevent YUI from loading any CSS, or set it to the string `"force"`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1811
to force CSS dependencies to be loaded even if their associated JS modules are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1812
already loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1813
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1814
@property {Boolean|String} fetchCSS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1815
@default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1816
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1817
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1818
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1819
Default gallery version used to build gallery module urls.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1820
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1821
@property {String} gallery
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1822
@since 3.1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1823
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1824
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1825
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1826
Default YUI 2 version used to build YUI 2 module urls.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1827
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1828
This is used for intrinsic YUI 2 support via the 2in3 project. Also see the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1829
`2in3` config for pulling different revisions of the wrapped YUI 2 modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1830
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1831
@property {String} yui2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1832
@default "2.9.0"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1833
@since 3.1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1834
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1835
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1836
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1837
Revision number of YUI 2in3 modules that should be used when loading YUI 2in3.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1838
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1839
@property {String} 2in3
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1840
@default "4"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1841
@since 3.1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1842
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1843
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1844
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1845
Alternate console log function that should be used in environments without a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1846
supported native console. This function is executed with the YUI instance as its
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1847
`this` object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1848
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1849
@property {Function} logFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1850
@since 3.1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1851
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1852
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1853
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1854
The minimum log level to log messages for. Log levels are defined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1855
incrementally. Messages greater than or equal to the level specified will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1856
be shown. All others will be discarded. The order of log levels in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1857
increasing priority is:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1858
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1859
    debug
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1860
    info
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1861
    warn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1862
    error
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1863
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1864
@property {String} logLevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1865
@default 'debug'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1866
@since 3.10.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1867
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1868
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1869
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1870
Callback to execute when `Y.error()` is called. It receives the error message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1871
and a JavaScript error object if one was provided.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1872
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1873
This function is executed with the YUI instance as its `this` object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1874
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1875
Returning `true` from this function will prevent an exception from being thrown.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1876
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1877
@property {Function} errorFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1878
@param {String} errorFn.msg Error message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1879
@param {Object} [errorFn.err] Error object (if one was provided).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1880
@since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1881
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1882
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1883
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1884
A callback to execute when Loader fails to load one or more resources.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1885
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1886
This could be because of a script load failure. It could also be because a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1887
module fails to register itself when the `requireRegistration` config is `true`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1888
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1889
If this function is defined, the `use()` callback will only be called when the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1890
loader succeeds. Otherwise, `use()` will always executes unless there was a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1891
JavaScript error when attaching a module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1892
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1893
@property {Function} loadErrorFn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1894
@since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1895
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1896
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1897
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1898
If `true`, Loader will expect all loaded scripts to be first-class YUI modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1899
that register themselves with the YUI global, and will trigger a failure if a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1900
loaded script does not register a YUI module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1901
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1902
@property {Boolean} requireRegistration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1903
@default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1904
@since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1905
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1906
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1907
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1908
Cache serviced use() requests.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1909
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1910
@property {Boolean} cacheUse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1911
@default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1912
@since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1913
@deprecated No longer used.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1914
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1915
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1916
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1917
Whether or not YUI should use native ES5 functionality when available for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1918
features like `Y.Array.each()`, `Y.Object()`, etc.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1919
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1920
When `false`, YUI will always use its own fallback implementations instead of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1921
relying on ES5 functionality, even when ES5 functionality is available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1922
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1923
@property {Boolean} useNativeES5
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1924
@default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1925
@since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1926
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1927
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1928
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1929
 * Leverage native JSON stringify if the browser has a native
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1930
 * implementation.  In general, this is a good idea.  See the Known Issues
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1931
 * section in the JSON user guide for caveats.  The default value is true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1932
 * for browsers with native JSON support.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1933
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1934
 * @property useNativeJSONStringify
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1935
 * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1936
 * @default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1937
 * @since 3.8.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1938
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1939
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1940
 /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1941
 * Leverage native JSON parse if the browser has a native implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1942
 * In general, this is a good idea.  See the Known Issues section in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1943
 * JSON user guide for caveats.  The default value is true for browsers with
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1944
 * native JSON support.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1945
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1946
 * @property useNativeJSONParse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1947
 * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1948
 * @default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1949
 * @since 3.8.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1950
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1951
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1952
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1953
Delay the `use` callback until a specific event has passed (`load`, `domready`, `contentready` or `available`)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1954
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1955
@property {Object|String} delayUntil
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1956
@since 3.6.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1957
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1958
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1959
You can use `load` or `domready` strings by default:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1960
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1961
    YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1962
        delayUntil: 'domready'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1963
    }, function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1964
        // This will not execute until 'domeready' occurs.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1965
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1966
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1967
Or you can delay until a node is available (with `available` or `contentready`):
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1968
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1969
    YUI({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1970
        delayUntil: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1971
            event: 'available',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1972
            args : '#foo'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1973
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1974
    }, function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1975
        // This will not execute until a node matching the selector "#foo" is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1976
        // available in the DOM.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1977
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1978
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1979
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1980
YUI.add('yui-base', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1981
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1982
/*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1983
 * YUI stub
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1984
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1985
 * @submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1986
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1987
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1988
 * The YUI module contains the components required for building the YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1989
 * seed file.  This includes the script loading mechanism, a simple queue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1990
 * and the core utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1991
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1992
 * @submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1993
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1994
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1995
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1996
 * Provides core language utilites and extensions used throughout YUI.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1997
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1998
 * @class Lang
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  1999
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2000
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2001
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2002
var L = Y.Lang || (Y.Lang = {}),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2003
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2004
STRING_PROTO = String.prototype,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2005
TOSTRING     = Object.prototype.toString,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2006
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2007
TYPES = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2008
    'undefined'        : 'undefined',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2009
    'number'           : 'number',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2010
    'boolean'          : 'boolean',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2011
    'string'           : 'string',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2012
    '[object Function]': 'function',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2013
    '[object RegExp]'  : 'regexp',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2014
    '[object Array]'   : 'array',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2015
    '[object Date]'    : 'date',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2016
    '[object Error]'   : 'error'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2017
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2018
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2019
SUBREGEX         = /\{\s*([^|}]+?)\s*(?:\|([^}]*))?\s*\}/g,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2020
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2021
WHITESPACE       = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2022
WHITESPACE_CLASS = "[\x09-\x0D\x20\xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]+",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2023
TRIM_LEFT_REGEX  = new RegExp("^" + WHITESPACE_CLASS),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2024
TRIM_RIGHT_REGEX = new RegExp(WHITESPACE_CLASS + "$"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2025
TRIMREGEX        = new RegExp(TRIM_LEFT_REGEX.source + "|" + TRIM_RIGHT_REGEX.source, "g"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2026
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2027
NATIVE_FN_REGEX  = /\{\s*\[(?:native code|function)\]\s*\}/i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2028
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2029
// -- Protected Methods --------------------------------------------------------
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2030
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2031
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2032
Returns `true` if the given function appears to be implemented in native code,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2033
`false` otherwise. Will always return `false` -- even in ES5-capable browsers --
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2034
if the `useNativeES5` YUI config option is set to `false`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2035
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2036
This isn't guaranteed to be 100% accurate and won't work for anything other than
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2037
functions, but it can be useful for determining whether a function like
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2038
`Array.prototype.forEach` is native or a JS shim provided by another library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2039
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2040
There's a great article by @kangax discussing certain flaws with this technique:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2041
<http://perfectionkills.com/detecting-built-in-host-methods/>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2042
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2043
While his points are valid, it's still possible to benefit from this function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2044
as long as it's used carefully and sparingly, and in such a way that false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2045
negatives have minimal consequences. It's used internally to avoid using
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2046
potentially broken non-native ES5 shims that have been added to the page by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2047
other libraries.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2048
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2049
@method _isNative
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2050
@param {Function} fn Function to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2051
@return {Boolean} `true` if _fn_ appears to be native, `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2052
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2053
@protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2054
@since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2055
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2056
L._isNative = function (fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2057
    return !!(Y.config.useNativeES5 && fn && NATIVE_FN_REGEX.test(fn));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2058
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2059
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2060
// -- Public Methods -----------------------------------------------------------
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2061
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2062
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2063
 * Determines whether or not the provided item is an array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2064
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2065
 * Returns `false` for array-like collections such as the function `arguments`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2066
 * collection or `HTMLElement` collections. Use `Y.Array.test()` if you want to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2067
 * test for an array-like collection.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2068
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2069
 * @method isArray
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2070
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2071
 * @return {boolean} true if o is an array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2072
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2073
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2074
L.isArray = L._isNative(Array.isArray) ? Array.isArray : function (o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2075
    return L.type(o) === 'array';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2076
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2077
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2078
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2079
 * Determines whether or not the provided item is a boolean.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2080
 * @method isBoolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2081
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2082
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2083
 * @return {boolean} true if o is a boolean.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2084
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2085
L.isBoolean = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2086
    return typeof o === 'boolean';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2087
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2088
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2089
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2090
 * Determines whether or not the supplied item is a date instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2091
 * @method isDate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2092
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2093
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2094
 * @return {boolean} true if o is a date.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2095
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2096
L.isDate = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2097
    return L.type(o) === 'date' && o.toString() !== 'Invalid Date' && !isNaN(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2098
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2099
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2100
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2101
 * <p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2102
 * Determines whether or not the provided item is a function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2103
 * Note: Internet Explorer thinks certain functions are objects:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2104
 * </p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2105
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2106
 * <pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2107
 * var obj = document.createElement("object");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2108
 * Y.Lang.isFunction(obj.getAttribute) // reports false in IE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2109
 * &nbsp;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2110
 * var input = document.createElement("input"); // append to body
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2111
 * Y.Lang.isFunction(input.focus) // reports false in IE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2112
 * </pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2113
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2114
 * <p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2115
 * You will have to implement additional tests if these functions
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2116
 * matter to you.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2117
 * </p>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2118
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2119
 * @method isFunction
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2120
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2121
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2122
 * @return {boolean} true if o is a function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2123
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2124
L.isFunction = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2125
    return L.type(o) === 'function';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2126
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2127
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2128
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2129
 * Determines whether or not the provided item is null.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2130
 * @method isNull
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2131
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2132
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2133
 * @return {boolean} true if o is null.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2134
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2135
L.isNull = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2136
    return o === null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2137
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2138
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2139
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2140
 * Determines whether or not the provided item is a legal number.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2141
 * @method isNumber
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2142
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2143
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2144
 * @return {boolean} true if o is a number.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2145
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2146
L.isNumber = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2147
    return typeof o === 'number' && isFinite(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2148
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2149
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2150
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2151
 * Determines whether or not the provided item is of type object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2152
 * or function. Note that arrays are also objects, so
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2153
 * <code>Y.Lang.isObject([]) === true</code>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2154
 * @method isObject
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2155
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2156
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2157
 * @param failfn {boolean} fail if the input is a function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2158
 * @return {boolean} true if o is an object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2159
 * @see isPlainObject
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2160
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2161
L.isObject = function(o, failfn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2162
    var t = typeof o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2163
    return (o && (t === 'object' ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2164
        (!failfn && (t === 'function' || L.isFunction(o))))) || false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2165
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2166
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2167
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2168
 * Determines whether or not the provided value is a regexp.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2169
 * @method isRegExp
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2170
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2171
 * @param value The value or object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2172
 * @return {boolean} true if value is a regexp.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2173
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2174
L.isRegExp = function(value) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2175
    return L.type(value) === 'regexp';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2176
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2177
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2178
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2179
 * Determines whether or not the provided item is a string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2180
 * @method isString
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2181
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2182
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2183
 * @return {boolean} true if o is a string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2184
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2185
L.isString = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2186
    return typeof o === 'string';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2187
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2188
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2189
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2190
 * Determines whether or not the provided item is undefined.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2191
 * @method isUndefined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2192
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2193
 * @param o The object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2194
 * @return {boolean} true if o is undefined.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2195
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2196
L.isUndefined = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2197
    return typeof o === 'undefined';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2198
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2199
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2200
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2201
 * A convenience method for detecting a legitimate non-null value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2202
 * Returns false for null/undefined/NaN, true for other values,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2203
 * including 0/false/''
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2204
 * @method isValue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2205
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2206
 * @param o The item to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2207
 * @return {boolean} true if it is not null/undefined/NaN || false.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2208
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2209
L.isValue = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2210
    var t = L.type(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2211
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2212
    switch (t) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2213
        case 'number':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2214
            return isFinite(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2215
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2216
        case 'null': // fallthru
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2217
        case 'undefined':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2218
            return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2219
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2220
        default:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2221
            return !!t;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2222
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2223
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2224
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2225
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2226
 * Returns the current time in milliseconds.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2227
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2228
 * @method now
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2229
 * @return {Number} Current time in milliseconds.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2230
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2231
 * @since 3.3.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2232
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2233
L.now = Date.now || function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2234
    return new Date().getTime();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2235
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2236
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2237
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2238
 * Performs `{placeholder}` substitution on a string. The object passed as the 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2239
 * second parameter provides values to replace the `{placeholder}`s.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2240
 * `{placeholder}` token names must match property names of the object. For example,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2241
 * 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2242
 *`var greeting = Y.Lang.sub("Hello, {who}!", { who: "World" });`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2243
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2244
 * `{placeholder}` tokens that are undefined on the object map will be left 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2245
 * in tact (leaving unsightly `{placeholder}`'s in the output string). 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2246
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2247
 * @method sub
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2248
 * @param {string} s String to be modified.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2249
 * @param {object} o Object containing replacement values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2250
 * @return {string} the substitute result.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2251
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2252
 * @since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2253
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2254
L.sub = function(s, o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2255
    return s.replace ? s.replace(SUBREGEX, function (match, key) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2256
        return L.isUndefined(o[key]) ? match : o[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2257
    }) : s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2258
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2259
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2260
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2261
 * Returns a string without any leading or trailing whitespace.  If
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2262
 * the input is not a string, the input will be returned untouched.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2263
 * @method trim
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2264
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2265
 * @param s {string} the string to trim.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2266
 * @return {string} the trimmed string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2267
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2268
L.trim = L._isNative(STRING_PROTO.trim) && !WHITESPACE.trim() ? function(s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2269
    return s && s.trim ? s.trim() : s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2270
} : function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2271
    try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2272
        return s.replace(TRIMREGEX, '');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2273
    } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2274
        return s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2275
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2276
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2277
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2278
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2279
 * Returns a string without any leading whitespace.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2280
 * @method trimLeft
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2281
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2282
 * @param s {string} the string to trim.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2283
 * @return {string} the trimmed string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2284
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2285
L.trimLeft = L._isNative(STRING_PROTO.trimLeft) && !WHITESPACE.trimLeft() ? function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2286
    return s.trimLeft();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2287
} : function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2288
    return s.replace(TRIM_LEFT_REGEX, '');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2289
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2290
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2291
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2292
 * Returns a string without any trailing whitespace.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2293
 * @method trimRight
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2294
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2295
 * @param s {string} the string to trim.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2296
 * @return {string} the trimmed string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2297
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2298
L.trimRight = L._isNative(STRING_PROTO.trimRight) && !WHITESPACE.trimRight() ? function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2299
    return s.trimRight();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2300
} : function (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2301
    return s.replace(TRIM_RIGHT_REGEX, '');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2302
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2303
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2304
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2305
Returns one of the following strings, representing the type of the item passed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2306
in:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2307
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2308
 * "array"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2309
 * "boolean"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2310
 * "date"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2311
 * "error"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2312
 * "function"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2313
 * "null"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2314
 * "number"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2315
 * "object"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2316
 * "regexp"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2317
 * "string"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2318
 * "undefined"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2319
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2320
Known issues:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2321
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2322
 * `typeof HTMLElementCollection` returns function in Safari, but
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2323
    `Y.Lang.type()` reports "object", which could be a good thing --
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2324
    but it actually caused the logic in <code>Y.Lang.isObject</code> to fail.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2325
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2326
@method type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2327
@param o the item to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2328
@return {string} the detected type.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2329
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2330
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2331
L.type = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2332
    return TYPES[typeof o] || TYPES[TOSTRING.call(o)] || (o ? 'object' : 'null');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2333
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2334
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2335
@module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2336
@submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2337
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2338
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2339
var Lang   = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2340
    Native = Array.prototype,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2341
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2342
    hasOwn = Object.prototype.hasOwnProperty;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2343
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2344
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2345
Provides utility methods for working with arrays. Additional array helpers can
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2346
be found in the `collection` and `array-extras` modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2347
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2348
`Y.Array(thing)` returns a native array created from _thing_. Depending on
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2349
_thing_'s type, one of the following will happen:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2350
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2351
  * Arrays are returned unmodified unless a non-zero _startIndex_ is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2352
    specified.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2353
  * Array-like collections (see `Array.test()`) are converted to arrays.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2354
  * For everything else, a new array is created with _thing_ as the sole
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2355
    item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2356
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2357
Note: elements that are also collections, such as `<form>` and `<select>`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2358
elements, are not automatically converted to arrays. To force a conversion,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2359
pass `true` as the value of the _force_ parameter.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2360
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2361
@class Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2362
@constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2363
@param {Any} thing The thing to arrayify.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2364
@param {Number} [startIndex=0] If non-zero and _thing_ is an array or array-like
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2365
  collection, a subset of items starting at the specified index will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2366
  returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2367
@param {Boolean} [force=false] If `true`, _thing_ will be treated as an
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2368
  array-like collection no matter what.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2369
@return {Array} A native array created from _thing_, according to the rules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2370
  described above.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2371
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2372
function YArray(thing, startIndex, force) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2373
    var len, result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2374
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2375
    /*jshint expr: true*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2376
    startIndex || (startIndex = 0);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2377
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2378
    if (force || YArray.test(thing)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2379
        // IE throws when trying to slice HTMLElement collections.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2380
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2381
            return Native.slice.call(thing, startIndex);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2382
        } catch (ex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2383
            result = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2384
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2385
            for (len = thing.length; startIndex < len; ++startIndex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2386
                result.push(thing[startIndex]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2387
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2388
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2389
            return result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2390
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2391
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2392
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2393
    return [thing];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2394
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2395
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2396
Y.Array = YArray;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2397
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2398
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2399
Dedupes an array of strings, returning an array that's guaranteed to contain
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2400
only one copy of a given string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2401
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2402
This method differs from `Array.unique()` in that it's optimized for use only
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2403
with arrays consisting entirely of strings or entirely of numbers, whereas
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2404
`unique` may be used with other value types (but is slower).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2405
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2406
Using `dedupe()` with values other than strings or numbers, or with arrays
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2407
containing a mix of strings and numbers, may result in unexpected behavior.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2408
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2409
@method dedupe
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2410
@param {String[]|Number[]} array Array of strings or numbers to dedupe.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2411
@return {Array} Copy of _array_ containing no duplicate values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2412
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2413
@since 3.4.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2414
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2415
YArray.dedupe = Lang._isNative(Object.create) ? function (array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2416
    var hash    = Object.create(null),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2417
        results = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2418
        i, item, len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2419
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2420
    for (i = 0, len = array.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2421
        item = array[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2422
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2423
        if (!hash[item]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2424
            hash[item] = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2425
            results.push(item);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2426
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2427
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2428
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2429
    return results;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2430
} : function (array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2431
    var hash    = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2432
        results = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2433
        i, item, len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2434
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2435
    for (i = 0, len = array.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2436
        item = array[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2437
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2438
        if (!hasOwn.call(hash, item)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2439
            hash[item] = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2440
            results.push(item);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2441
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2442
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2443
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2444
    return results;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2445
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2446
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2447
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2448
Executes the supplied function on each item in the array. This method wraps
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2449
the native ES5 `Array.forEach()` method if available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2450
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2451
@method each
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2452
@param {Array} array Array to iterate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2453
@param {Function} fn Function to execute on each item in the array. The function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2454
  will receive the following arguments:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2455
    @param {Any} fn.item Current array item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2456
    @param {Number} fn.index Current array index.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2457
    @param {Array} fn.array Array being iterated.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2458
@param {Object} [thisObj] `this` object to use when calling _fn_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2459
@return {YUI} The YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2460
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2461
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2462
YArray.each = YArray.forEach = Lang._isNative(Native.forEach) ? function (array, fn, thisObj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2463
    Native.forEach.call(array || [], fn, thisObj || Y);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2464
    return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2465
} : function (array, fn, thisObj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2466
    for (var i = 0, len = (array && array.length) || 0; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2467
        if (i in array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2468
            fn.call(thisObj || Y, array[i], i, array);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2469
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2470
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2471
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2472
    return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2473
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2474
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2475
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2476
Alias for `each()`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2477
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2478
@method forEach
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2479
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2480
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2481
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2482
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2483
Returns an object using the first array as keys and the second as values. If
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2484
the second array is not provided, or if it doesn't contain the same number of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2485
values as the first array, then `true` will be used in place of the missing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2486
values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2487
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2488
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2489
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2490
    Y.Array.hash(['a', 'b', 'c'], ['foo', 'bar']);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2491
    // => {a: 'foo', b: 'bar', c: true}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2492
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2493
@method hash
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2494
@param {String[]} keys Array of strings to use as keys.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2495
@param {Array} [values] Array to use as values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2496
@return {Object} Hash using the first array as keys and the second as values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2497
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2498
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2499
YArray.hash = function (keys, values) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2500
    var hash = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2501
        vlen = (values && values.length) || 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2502
        i, len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2504
    for (i = 0, len = keys.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2505
        if (i in keys) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2506
            hash[keys[i]] = vlen > i && i in values ? values[i] : true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2507
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2508
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2509
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2510
    return hash;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2511
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2513
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2514
Returns the index of the first item in the array that's equal (using a strict
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2515
equality check) to the specified _value_, or `-1` if the value isn't found.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2516
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2517
This method wraps the native ES5 `Array.indexOf()` method if available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2518
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2519
@method indexOf
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2520
@param {Array} array Array to search.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2521
@param {Any} value Value to search for.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2522
@param {Number} [from=0] The index at which to begin the search.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2523
@return {Number} Index of the item strictly equal to _value_, or `-1` if not
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2524
    found.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2525
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2526
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2527
YArray.indexOf = Lang._isNative(Native.indexOf) ? function (array, value, from) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2528
    return Native.indexOf.call(array, value, from);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2529
} : function (array, value, from) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2530
    // http://es5.github.com/#x15.4.4.14
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2531
    var len = array.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2532
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2533
    from = +from || 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2534
    from = (from > 0 || -1) * Math.floor(Math.abs(from));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2535
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2536
    if (from < 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2537
        from += len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2538
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2539
        if (from < 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2540
            from = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2541
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2542
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2543
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2544
    for (; from < len; ++from) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2545
        if (from in array && array[from] === value) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2546
            return from;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2547
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2548
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2549
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2550
    return -1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2551
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2552
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2553
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2554
Numeric sort convenience function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2555
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2556
The native `Array.prototype.sort()` function converts values to strings and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2557
sorts them in lexicographic order, which is unsuitable for sorting numeric
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2558
values. Provide `Array.numericSort` as a custom sort function when you want
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2559
to sort values in numeric order.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2560
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2561
@example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2562
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2563
    [42, 23, 8, 16, 4, 15].sort(Y.Array.numericSort);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2564
    // => [4, 8, 15, 16, 23, 42]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2565
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2566
@method numericSort
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2567
@param {Number} a First value to compare.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2568
@param {Number} b Second value to compare.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2569
@return {Number} Difference between _a_ and _b_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2570
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2571
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2572
YArray.numericSort = function (a, b) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2573
    return a - b;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2574
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2575
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2576
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2577
Executes the supplied function on each item in the array. Returning a truthy
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2578
value from the function will stop the processing of remaining items.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2579
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2580
@method some
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2581
@param {Array} array Array to iterate over.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2582
@param {Function} fn Function to execute on each item. The function will receive
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2583
  the following arguments:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2584
    @param {Any} fn.value Current array item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2585
    @param {Number} fn.index Current array index.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2586
    @param {Array} fn.array Array being iterated over.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2587
@param {Object} [thisObj] `this` object to use when calling _fn_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2588
@return {Boolean} `true` if the function returns a truthy value on any of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2589
  items in the array; `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2590
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2591
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2592
YArray.some = Lang._isNative(Native.some) ? function (array, fn, thisObj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2593
    return Native.some.call(array, fn, thisObj);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2594
} : function (array, fn, thisObj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2595
    for (var i = 0, len = array.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2596
        if (i in array && fn.call(thisObj, array[i], i, array)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2597
            return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2598
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2599
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2600
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2601
    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2602
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2603
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2604
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2605
Evaluates _obj_ to determine if it's an array, an array-like collection, or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2606
something else. This is useful when working with the function `arguments`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2607
collection and `HTMLElement` collections.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2608
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2609
Note: This implementation doesn't consider elements that are also
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2610
collections, such as `<form>` and `<select>`, to be array-like.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2611
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2612
@method test
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2613
@param {Object} obj Object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2614
@return {Number} A number indicating the results of the test:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2615
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2616
  * 0: Neither an array nor an array-like collection.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2617
  * 1: Real array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2618
  * 2: Array-like collection.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2619
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2620
@static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2621
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2622
YArray.test = function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2623
    var result = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2624
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2625
    if (Lang.isArray(obj)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2626
        result = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2627
    } else if (Lang.isObject(obj)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2628
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2629
            // indexed, but no tagName (element) or scrollTo/document (window. From DOM.isWindow test which we can't use here),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2630
            // or functions without apply/call (Safari
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2631
            // HTMLElementCollection bug).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2632
            if ('length' in obj && !obj.tagName && !(obj.scrollTo && obj.document) && !obj.apply) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2633
                result = 2;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2634
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2635
        } catch (ex) {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2636
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2637
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2638
    return result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2639
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2640
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2641
 * The YUI module contains the components required for building the YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2642
 * seed file.  This includes the script loading mechanism, a simple queue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2643
 * and the core utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2644
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2645
 * @submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2646
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2647
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2648
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2649
 * A simple FIFO queue.  Items are added to the Queue with add(1..n items) and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2650
 * removed using next().
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2651
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2652
 * @class Queue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2653
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2654
 * @param {MIXED} item* 0..n items to seed the queue.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2655
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2656
function Queue() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2657
    this._init();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2658
    this.add.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2659
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2660
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2661
Queue.prototype = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2662
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2663
     * Initialize the queue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2664
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2665
     * @method _init
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2666
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2667
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2668
    _init: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2669
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2670
         * The collection of enqueued items
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2671
         *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2672
         * @property _q
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2673
         * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2674
         * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2675
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2676
        this._q = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2677
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2678
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2679
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2680
     * Get the next item in the queue. FIFO support
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2681
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2682
     * @method next
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2683
     * @return {MIXED} the next item in the queue.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2684
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2685
    next: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2686
        return this._q.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2687
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2688
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2689
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2690
     * Get the last in the queue. LIFO support.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2691
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2692
     * @method last
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2693
     * @return {MIXED} the last item in the queue.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2694
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2695
    last: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2696
        return this._q.pop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2697
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2698
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2699
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2700
     * Add 0..n items to the end of the queue.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2701
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2702
     * @method add
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2703
     * @param {MIXED} item* 0..n items.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2704
     * @return {object} this queue.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2705
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2706
    add: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2707
        this._q.push.apply(this._q, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2708
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2709
        return this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2710
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2711
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2712
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2713
     * Returns the current number of queued items.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2714
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2715
     * @method size
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2716
     * @return {Number} The size.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2717
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2718
    size: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2719
        return this._q.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2720
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2721
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2722
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2723
Y.Queue = Queue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2724
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2725
YUI.Env._loaderQueue = YUI.Env._loaderQueue || new Queue();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2726
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2727
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2728
The YUI module contains the components required for building the YUI seed file.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2729
This includes the script loading mechanism, a simple queue, and the core
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2730
utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2731
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2732
@module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2733
@submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2734
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2735
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2736
var CACHED_DELIMITER = '__',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2737
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2738
    hasOwn   = Object.prototype.hasOwnProperty,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2739
    isObject = Y.Lang.isObject;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2740
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2741
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2742
Returns a wrapper for a function which caches the return value of that function,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2743
keyed off of the combined string representation of the argument values provided
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2744
when the wrapper is called.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2745
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2746
Calling this function again with the same arguments will return the cached value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2747
rather than executing the wrapped function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2748
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2749
Note that since the cache is keyed off of the string representation of arguments
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2750
passed to the wrapper function, arguments that aren't strings and don't provide
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2751
a meaningful `toString()` method may result in unexpected caching behavior. For
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2752
example, the objects `{}` and `{foo: 'bar'}` would both be converted to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2753
string `[object Object]` when used as a cache key.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2754
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2755
@method cached
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2756
@param {Function} source The function to memoize.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2757
@param {Object} [cache={}] Object in which to store cached values. You may seed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2758
  this object with pre-existing cached values if desired.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2759
@param {any} [refetch] If supplied, this value is compared with the cached value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2760
  using a `==` comparison. If the values are equal, the wrapped function is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2761
  executed again even though a cached value exists.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2762
@return {Function} Wrapped function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2763
@for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2764
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2765
Y.cached = function (source, cache, refetch) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2766
    /*jshint expr: true*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2767
    cache || (cache = {});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2768
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2769
    return function (arg) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2770
        var key = arguments.length > 1 ?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2771
                Array.prototype.join.call(arguments, CACHED_DELIMITER) :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2772
                String(arg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2773
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2774
        /*jshint eqeqeq: false*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2775
        if (!(key in cache) || (refetch && cache[key] == refetch)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2776
            cache[key] = source.apply(source, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2777
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2778
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2779
        return cache[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2780
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2781
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2782
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2783
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2784
Returns the `location` object from the window/frame in which this YUI instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2785
operates, or `undefined` when executing in a non-browser environment
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2786
(e.g. Node.js).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2787
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2788
It is _not_ recommended to hold references to the `window.location` object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2789
outside of the scope of a function in which its properties are being accessed or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2790
its methods are being called. This is because of a nasty bug/issue that exists
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2791
in both Safari and MobileSafari browsers:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2792
[WebKit Bug 34679](https://bugs.webkit.org/show_bug.cgi?id=34679).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2793
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2794
@method getLocation
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2795
@return {location} The `location` object from the window/frame in which this YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2796
    instance operates.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2797
@since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2798
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2799
Y.getLocation = function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2800
    // It is safer to look this up every time because yui-base is attached to a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2801
    // YUI instance before a user's config is applied; i.e. `Y.config.win` does
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2802
    // not point the correct window object when this file is loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2803
    var win = Y.config.win;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2804
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2805
    // It is not safe to hold a reference to the `location` object outside the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2806
    // scope in which it is being used. The WebKit engine used in Safari and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2807
    // MobileSafari will "disconnect" the `location` object from the `window`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2808
    // when a page is restored from back/forward history cache.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2809
    return win && win.location;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2810
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2811
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2812
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2813
Returns a new object containing all of the properties of all the supplied
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2814
objects. The properties from later objects will overwrite those in earlier
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2815
objects.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2816
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2817
Passing in a single object will create a shallow copy of it. For a deep copy,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2818
use `clone()`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2819
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2820
@method merge
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2821
@param {Object} objects* One or more objects to merge.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2822
@return {Object} A new merged object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2823
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2824
Y.merge = function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2825
    var i      = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2826
        len    = arguments.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2827
        result = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2828
        key,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2829
        obj;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2830
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2831
    for (; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2832
        obj = arguments[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2833
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2834
        for (key in obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2835
            if (hasOwn.call(obj, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2836
                result[key] = obj[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2837
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2838
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2839
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2840
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2841
    return result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2842
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2843
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2844
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2845
Mixes _supplier_'s properties into _receiver_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2846
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2847
Properties on _receiver_ or _receiver_'s prototype will not be overwritten or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2848
shadowed unless the _overwrite_ parameter is `true`, and will not be merged
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2849
unless the _merge_ parameter is `true`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2850
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2851
In the default mode (0), only properties the supplier owns are copied (prototype
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2852
properties are not copied). The following copying modes are available:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2853
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2854
  * `0`: _Default_. Object to object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2855
  * `1`: Prototype to prototype.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2856
  * `2`: Prototype to prototype and object to object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2857
  * `3`: Prototype to object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2858
  * `4`: Object to prototype.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2859
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2860
@method mix
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2861
@param {Function|Object} receiver The object or function to receive the mixed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2862
  properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2863
@param {Function|Object} supplier The object or function supplying the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2864
  properties to be mixed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2865
@param {Boolean} [overwrite=false] If `true`, properties that already exist
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2866
  on the receiver will be overwritten with properties from the supplier.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2867
@param {String[]} [whitelist] An array of property names to copy. If
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2868
  specified, only the whitelisted properties will be copied, and all others
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2869
  will be ignored.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2870
@param {Number} [mode=0] Mix mode to use. See above for available modes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2871
@param {Boolean} [merge=false] If `true`, objects and arrays that already
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2872
  exist on the receiver will have the corresponding object/array from the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2873
  supplier merged into them, rather than being skipped or overwritten. When
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2874
  both _overwrite_ and _merge_ are `true`, _merge_ takes precedence.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2875
@return {Function|Object|YUI} The receiver, or the YUI instance if the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2876
  specified receiver is falsy.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2877
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2878
Y.mix = function(receiver, supplier, overwrite, whitelist, mode, merge) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2879
    var alwaysOverwrite, exists, from, i, key, len, to;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2880
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2881
    // If no supplier is given, we return the receiver. If no receiver is given,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2882
    // we return Y. Returning Y doesn't make much sense to me, but it's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2883
    // grandfathered in for backcompat reasons.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2884
    if (!receiver || !supplier) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2885
        return receiver || Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2886
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2887
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2888
    if (mode) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2889
        // In mode 2 (prototype to prototype and object to object), we recurse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2890
        // once to do the proto to proto mix. The object to object mix will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2891
        // handled later on.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2892
        if (mode === 2) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2893
            Y.mix(receiver.prototype, supplier.prototype, overwrite,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2894
                    whitelist, 0, merge);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2895
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2896
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2897
        // Depending on which mode is specified, we may be copying from or to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2898
        // the prototypes of the supplier and receiver.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2899
        from = mode === 1 || mode === 3 ? supplier.prototype : supplier;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2900
        to   = mode === 1 || mode === 4 ? receiver.prototype : receiver;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2901
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2902
        // If either the supplier or receiver doesn't actually have a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2903
        // prototype property, then we could end up with an undefined `from`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2904
        // or `to`. If that happens, we abort and return the receiver.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2905
        if (!from || !to) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2906
            return receiver;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2907
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2908
    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2909
        from = supplier;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2910
        to   = receiver;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2911
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2912
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2913
    // If `overwrite` is truthy and `merge` is falsy, then we can skip a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2914
    // property existence check on each iteration and save some time.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2915
    alwaysOverwrite = overwrite && !merge;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2916
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2917
    if (whitelist) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2918
        for (i = 0, len = whitelist.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2919
            key = whitelist[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2920
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2921
            // We call `Object.prototype.hasOwnProperty` instead of calling
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2922
            // `hasOwnProperty` on the object itself, since the object's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2923
            // `hasOwnProperty` method may have been overridden or removed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2924
            // Also, some native objects don't implement a `hasOwnProperty`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2925
            // method.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2926
            if (!hasOwn.call(from, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2927
                continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2928
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2929
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2930
            // The `key in to` check here is (sadly) intentional for backwards
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2931
            // compatibility reasons. It prevents undesired shadowing of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2932
            // prototype members on `to`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2933
            exists = alwaysOverwrite ? false : key in to;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2934
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2935
            if (merge && exists && isObject(to[key], true)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2936
                    && isObject(from[key], true)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2937
                // If we're in merge mode, and the key is present on both
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2938
                // objects, and the value on both objects is either an object or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2939
                // an array (but not a function), then we recurse to merge the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2940
                // `from` value into the `to` value instead of overwriting it.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2941
                //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2942
                // Note: It's intentional that the whitelist isn't passed to the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2943
                // recursive call here. This is legacy behavior that lots of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2944
                // code still depends on.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2945
                Y.mix(to[key], from[key], overwrite, null, 0, merge);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2946
            } else if (overwrite || !exists) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2947
                // We're not in merge mode, so we'll only copy the `from` value
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2948
                // to the `to` value if we're in overwrite mode or if the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2949
                // current key doesn't exist on the `to` object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2950
                to[key] = from[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2951
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2952
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2953
    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2954
        for (key in from) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2955
            // The code duplication here is for runtime performance reasons.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2956
            // Combining whitelist and non-whitelist operations into a single
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2957
            // loop or breaking the shared logic out into a function both result
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2958
            // in worse performance, and Y.mix is critical enough that the byte
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2959
            // tradeoff is worth it.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2960
            if (!hasOwn.call(from, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2961
                continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2962
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2963
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2964
            // The `key in to` check here is (sadly) intentional for backwards
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2965
            // compatibility reasons. It prevents undesired shadowing of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2966
            // prototype members on `to`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2967
            exists = alwaysOverwrite ? false : key in to;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2968
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2969
            if (merge && exists && isObject(to[key], true)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2970
                    && isObject(from[key], true)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2971
                Y.mix(to[key], from[key], overwrite, null, 0, merge);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2972
            } else if (overwrite || !exists) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2973
                to[key] = from[key];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2974
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2975
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2976
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2977
        // If this is an IE browser with the JScript enumeration bug, force
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2978
        // enumeration of the buggy properties by making a recursive call with
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2979
        // the buggy properties as the whitelist.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2980
        if (Y.Object._hasEnumBug) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2981
            Y.mix(to, from, overwrite, Y.Object._forceEnum, mode, merge);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2982
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2983
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2984
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2985
    return receiver;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2986
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2987
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2988
 * The YUI module contains the components required for building the YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2989
 * seed file.  This includes the script loading mechanism, a simple queue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2990
 * and the core utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2991
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2992
 * @submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2993
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2994
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2995
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2996
 * Adds utilities to the YUI instance for working with objects.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2997
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2998
 * @class Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  2999
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3000
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3001
var Lang   = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3002
    hasOwn = Object.prototype.hasOwnProperty,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3003
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3004
    UNDEFINED, // <-- Note the comma. We're still declaring vars.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3005
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3006
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3007
 * Returns a new object that uses _obj_ as its prototype. This method wraps the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3008
 * native ES5 `Object.create()` method if available, but doesn't currently
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3009
 * pass through `Object.create()`'s second argument (properties) in order to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3010
 * ensure compatibility with older browsers.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3011
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3012
 * @method ()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3013
 * @param {Object} obj Prototype object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3014
 * @return {Object} New object using _obj_ as its prototype.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3015
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3016
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3017
O = Y.Object = Lang._isNative(Object.create) ? function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3018
    // We currently wrap the native Object.create instead of simply aliasing it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3019
    // to ensure consistency with our fallback shim, which currently doesn't
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3020
    // support Object.create()'s second argument (properties). Once we have a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3021
    // safe fallback for the properties arg, we can stop wrapping
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3022
    // Object.create().
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3023
    return Object.create(obj);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3024
} : (function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3025
    // Reusable constructor function for the Object.create() shim.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3026
    function F() {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3027
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3028
    // The actual shim.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3029
    return function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3030
        F.prototype = obj;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3031
        return new F();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3032
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3033
}()),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3034
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3035
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3036
 * Property names that IE doesn't enumerate in for..in loops, even when they
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3037
 * should be enumerable. When `_hasEnumBug` is `true`, it's necessary to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3038
 * manually enumerate these properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3039
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3040
 * @property _forceEnum
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3041
 * @type String[]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3042
 * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3043
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3044
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3045
forceEnum = O._forceEnum = [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3046
    'hasOwnProperty',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3047
    'isPrototypeOf',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3048
    'propertyIsEnumerable',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3049
    'toString',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3050
    'toLocaleString',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3051
    'valueOf'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3052
],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3053
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3054
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3055
 * `true` if this browser has the JScript enumeration bug that prevents
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3056
 * enumeration of the properties named in the `_forceEnum` array, `false`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3057
 * otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3058
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3059
 * See:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3060
 *   - <https://developer.mozilla.org/en/ECMAScript_DontEnum_attribute#JScript_DontEnum_Bug>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3061
 *   - <http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3062
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3063
 * @property _hasEnumBug
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3064
 * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3065
 * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3066
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3067
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3068
hasEnumBug = O._hasEnumBug = !{valueOf: 0}.propertyIsEnumerable('valueOf'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3069
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3070
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3071
 * `true` if this browser incorrectly considers the `prototype` property of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3072
 * functions to be enumerable. Currently known to affect Opera 11.50 and Android 2.3.x.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3073
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3074
 * @property _hasProtoEnumBug
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3075
 * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3076
 * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3077
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3078
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3079
hasProtoEnumBug = O._hasProtoEnumBug = (function () {}).propertyIsEnumerable('prototype'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3080
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3081
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3082
 * Returns `true` if _key_ exists on _obj_, `false` if _key_ doesn't exist or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3083
 * exists only on _obj_'s prototype. This is essentially a safer version of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3084
 * `obj.hasOwnProperty()`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3085
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3086
 * @method owns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3087
 * @param {Object} obj Object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3088
 * @param {String} key Property name to look for.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3089
 * @return {Boolean} `true` if _key_ exists on _obj_, `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3090
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3091
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3092
owns = O.owns = function (obj, key) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3093
    return !!obj && hasOwn.call(obj, key);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3094
}; // <-- End of var declarations.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3095
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3096
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3097
 * Alias for `owns()`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3098
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3099
 * @method hasKey
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3100
 * @param {Object} obj Object to test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3101
 * @param {String} key Property name to look for.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3102
 * @return {Boolean} `true` if _key_ exists on _obj_, `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3103
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3104
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3105
O.hasKey = owns;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3106
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3107
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3108
 * Returns an array containing the object's enumerable keys. Does not include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3109
 * prototype keys or non-enumerable keys.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3110
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3111
 * Note that keys are returned in enumeration order (that is, in the same order
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3112
 * that they would be enumerated by a `for-in` loop), which may not be the same
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3113
 * as the order in which they were defined.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3114
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3115
 * This method is an alias for the native ES5 `Object.keys()` method if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3116
 * available and non-buggy. The Opera 11.50 and Android 2.3.x versions of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3117
 * `Object.keys()` have an inconsistency as they consider `prototype` to be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3118
 * enumerable, so a non-native shim is used to rectify the difference.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3119
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3120
 * @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3121
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3122
 *     Y.Object.keys({a: 'foo', b: 'bar', c: 'baz'});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3123
 *     // => ['a', 'b', 'c']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3124
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3125
 * @method keys
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3126
 * @param {Object} obj An object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3127
 * @return {String[]} Array of keys.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3128
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3129
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3130
O.keys = Lang._isNative(Object.keys) && !hasProtoEnumBug ? Object.keys : function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3131
    if (!Lang.isObject(obj)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3132
        throw new TypeError('Object.keys called on a non-object');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3133
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3134
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3135
    var keys = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3136
        i, key, len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3137
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3138
    if (hasProtoEnumBug && typeof obj === 'function') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3139
        for (key in obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3140
            if (owns(obj, key) && key !== 'prototype') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3141
                keys.push(key);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3142
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3143
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3144
    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3145
        for (key in obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3146
            if (owns(obj, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3147
                keys.push(key);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3148
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3149
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3150
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3151
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3152
    if (hasEnumBug) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3153
        for (i = 0, len = forceEnum.length; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3154
            key = forceEnum[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3156
            if (owns(obj, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3157
                keys.push(key);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3158
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3159
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3160
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3161
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3162
    return keys;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3163
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3164
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3165
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3166
 * Returns an array containing the values of the object's enumerable keys.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3167
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3168
 * Note that values are returned in enumeration order (that is, in the same
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3169
 * order that they would be enumerated by a `for-in` loop), which may not be the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3170
 * same as the order in which they were defined.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3171
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3172
 * @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3173
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3174
 *     Y.Object.values({a: 'foo', b: 'bar', c: 'baz'});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3175
 *     // => ['foo', 'bar', 'baz']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3176
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3177
 * @method values
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3178
 * @param {Object} obj An object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3179
 * @return {Array} Array of values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3180
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3181
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3182
O.values = function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3183
    var keys   = O.keys(obj),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3184
        i      = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3185
        len    = keys.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3186
        values = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3187
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3188
    for (; i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3189
        values.push(obj[keys[i]]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3190
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3192
    return values;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3193
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3194
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3195
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3196
 * Returns the number of enumerable keys owned by an object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3197
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3198
 * @method size
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3199
 * @param {Object} obj An object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3200
 * @return {Number} The object's size.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3201
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3202
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3203
O.size = function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3204
    try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3205
        return O.keys(obj).length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3206
    } catch (ex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3207
        return 0; // Legacy behavior for non-objects.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3208
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3209
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3210
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3211
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3212
 * Returns `true` if the object owns an enumerable property with the specified
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3213
 * value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3214
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3215
 * @method hasValue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3216
 * @param {Object} obj An object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3217
 * @param {any} value The value to search for.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3218
 * @return {Boolean} `true` if _obj_ contains _value_, `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3219
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3220
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3221
O.hasValue = function (obj, value) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3222
    return Y.Array.indexOf(O.values(obj), value) > -1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3223
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3224
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3225
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3226
 * Executes a function on each enumerable property in _obj_. The function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3227
 * receives the value, the key, and the object itself as parameters (in that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3228
 * order).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3229
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3230
 * By default, only properties owned by _obj_ are enumerated. To include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3231
 * prototype properties, set the _proto_ parameter to `true`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3232
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3233
 * @method each
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3234
 * @param {Object} obj Object to enumerate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3235
 * @param {Function} fn Function to execute on each enumerable property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3236
 *   @param {mixed} fn.value Value of the current property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3237
 *   @param {String} fn.key Key of the current property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3238
 *   @param {Object} fn.obj Object being enumerated.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3239
 * @param {Object} [thisObj] `this` object to use when calling _fn_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3240
 * @param {Boolean} [proto=false] Include prototype properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3241
 * @return {YUI} the YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3242
 * @chainable
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3243
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3244
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3245
O.each = function (obj, fn, thisObj, proto) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3246
    var key;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3247
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3248
    for (key in obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3249
        if (proto || owns(obj, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3250
            fn.call(thisObj || Y, obj[key], key, obj);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3251
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3252
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3253
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3254
    return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3255
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3256
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3257
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3258
 * Executes a function on each enumerable property in _obj_, but halts if the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3259
 * function returns a truthy value. The function receives the value, the key,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3260
 * and the object itself as paramters (in that order).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3261
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3262
 * By default, only properties owned by _obj_ are enumerated. To include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3263
 * prototype properties, set the _proto_ parameter to `true`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3264
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3265
 * @method some
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3266
 * @param {Object} obj Object to enumerate.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3267
 * @param {Function} fn Function to execute on each enumerable property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3268
 *   @param {mixed} fn.value Value of the current property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3269
 *   @param {String} fn.key Key of the current property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3270
 *   @param {Object} fn.obj Object being enumerated.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3271
 * @param {Object} [thisObj] `this` object to use when calling _fn_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3272
 * @param {Boolean} [proto=false] Include prototype properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3273
 * @return {Boolean} `true` if any execution of _fn_ returns a truthy value,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3274
 *   `false` otherwise.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3275
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3276
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3277
O.some = function (obj, fn, thisObj, proto) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3278
    var key;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3279
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3280
    for (key in obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3281
        if (proto || owns(obj, key)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3282
            if (fn.call(thisObj || Y, obj[key], key, obj)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3283
                return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3284
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3285
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3286
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3287
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3288
    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3289
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3290
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3291
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3292
 * Retrieves the sub value at the provided path,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3293
 * from the value object provided.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3294
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3295
 * @method getValue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3296
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3297
 * @param o The object from which to extract the property value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3298
 * @param path {Array} A path array, specifying the object traversal path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3299
 * from which to obtain the sub value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3300
 * @return {Any} The value stored in the path, undefined if not found,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3301
 * undefined if the source is not an object.  Returns the source object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3302
 * if an empty path is provided.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3303
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3304
O.getValue = function(o, path) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3305
    if (!Lang.isObject(o)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3306
        return UNDEFINED;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3307
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3308
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3309
    var i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3310
        p = Y.Array(path),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3311
        l = p.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3312
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3313
    for (i = 0; o !== UNDEFINED && i < l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3314
        o = o[p[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3315
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3317
    return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3318
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3319
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3320
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3321
 * Sets the sub-attribute value at the provided path on the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3322
 * value object.  Returns the modified value object, or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3323
 * undefined if the path is invalid.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3324
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3325
 * @method setValue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3326
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3327
 * @param o             The object on which to set the sub value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3328
 * @param path {Array}  A path array, specifying the object traversal path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3329
 *                      at which to set the sub value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3330
 * @param val {Any}     The new value for the sub-attribute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3331
 * @return {Object}     The modified object, with the new sub value set, or
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3332
 *                      undefined, if the path was invalid.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3333
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3334
O.setValue = function(o, path, val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3335
    var i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3336
        p = Y.Array(path),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3337
        leafIdx = p.length - 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3338
        ref = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3339
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3340
    if (leafIdx >= 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3341
        for (i = 0; ref !== UNDEFINED && i < leafIdx; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3342
            ref = ref[p[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3343
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3344
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3345
        if (ref !== UNDEFINED) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3346
            ref[p[i]] = val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3347
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3348
            return UNDEFINED;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3349
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3350
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3351
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3352
    return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3353
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3354
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3355
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3356
 * Returns `true` if the object has no enumerable properties of its own.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3357
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3358
 * @method isEmpty
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3359
 * @param {Object} obj An object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3360
 * @return {Boolean} `true` if the object is empty.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3361
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3362
 * @since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3363
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3364
O.isEmpty = function (obj) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3365
    return !O.keys(Object(obj)).length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3366
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3367
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3368
 * The YUI module contains the components required for building the YUI seed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3369
 * file.  This includes the script loading mechanism, a simple queue, and the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3370
 * core utilities for the library.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3371
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3372
 * @submodule yui-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3373
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3374
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3375
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3376
 * YUI user agent detection.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3377
 * Do not fork for a browser if it can be avoided.  Use feature detection when
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3378
 * you can.  Use the user agent as a last resort.  For all fields listed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3379
 * as @type float, UA stores a version number for the browser engine,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3380
 * 0 otherwise.  This value may or may not map to the version number of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3381
 * the browser using the engine.  The value is presented as a float so
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3382
 * that it can easily be used for boolean evaluation as well as for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3383
 * looking for a particular range of versions.  Because of this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3384
 * some of the granularity of the version info may be lost.  The fields that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3385
 * are @type string default to null.  The API docs list the values that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3386
 * these fields can have.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3387
 * @class UA
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3388
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3389
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3390
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3391
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3392
* Static method on `YUI.Env` for parsing a UA string.  Called at instantiation
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3393
* to populate `Y.UA`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3394
*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3395
* @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3396
* @method parseUA
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3397
* @param {String} [subUA=navigator.userAgent] UA string to parse
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3398
* @return {Object} The Y.UA object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3399
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3400
YUI.Env.parseUA = function(subUA) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3401
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3402
    var numberify = function(s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3403
            var c = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3404
            return parseFloat(s.replace(/\./g, function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3405
                return (c++ === 1) ? '' : '.';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3406
            }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3407
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3408
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3409
        win = Y.config.win,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3410
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3411
        nav = win && win.navigator,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3412
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3413
        o = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3414
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3415
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3416
         * Internet Explorer version number or 0.  Example: 6
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3417
         * @property ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3418
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3419
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3420
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3421
        ie: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3422
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3423
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3424
         * Opera version number or 0.  Example: 9.2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3425
         * @property opera
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3426
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3427
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3428
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3429
        opera: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3430
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3431
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3432
         * Gecko engine revision number.  Will evaluate to 1 if Gecko
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3433
         * is detected but the revision could not be found. Other browsers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3434
         * will be 0.  Example: 1.8
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3435
         * <pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3436
         * Firefox 1.0.0.4: 1.7.8   <-- Reports 1.7
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3437
         * Firefox 1.5.0.9: 1.8.0.9 <-- 1.8
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3438
         * Firefox 2.0.0.3: 1.8.1.3 <-- 1.81
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3439
         * Firefox 3.0   <-- 1.9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3440
         * Firefox 3.5   <-- 1.91
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3441
         * </pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3442
         * @property gecko
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3443
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3444
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3445
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3446
        gecko: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3447
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3448
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3449
         * AppleWebKit version.  KHTML browsers that are not WebKit browsers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3450
         * will evaluate to 1, other browsers 0.  Example: 418.9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3451
         * <pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3452
         * Safari 1.3.2 (312.6): 312.8.1 <-- Reports 312.8 -- currently the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3453
         *                                   latest available for Mac OSX 10.3.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3454
         * Safari 2.0.2:         416     <-- hasOwnProperty introduced
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3455
         * Safari 2.0.4:         418     <-- preventDefault fixed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3456
         * Safari 2.0.4 (419.3): 418.9.1 <-- One version of Safari may run
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3457
         *                                   different versions of webkit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3458
         * Safari 2.0.4 (419.3): 419     <-- Tiger installations that have been
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3459
         *                                   updated, but not updated
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3460
         *                                   to the latest patch.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3461
         * Webkit 212 nightly:   522+    <-- Safari 3.0 precursor (with native
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3462
         * SVG and many major issues fixed).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3463
         * Safari 3.0.4 (523.12) 523.12  <-- First Tiger release - automatic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3464
         * update from 2.x via the 10.4.11 OS patch.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3465
         * Webkit nightly 1/2008:525+    <-- Supports DOMContentLoaded event.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3466
         *                                   yahoo.com user agent hack removed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3467
         * </pre>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3468
         * http://en.wikipedia.org/wiki/Safari_version_history
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3469
         * @property webkit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3470
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3471
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3472
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3473
        webkit: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3474
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3475
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3476
         * Safari will be detected as webkit, but this property will also
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3477
         * be populated with the Safari version number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3478
         * @property safari
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3479
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3480
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3481
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3482
        safari: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3483
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3484
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3485
         * Chrome will be detected as webkit, but this property will also
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3486
         * be populated with the Chrome version number
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3487
         * @property chrome
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3488
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3489
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3490
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3491
        chrome: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3492
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3493
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3494
         * The mobile property will be set to a string containing any relevant
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3495
         * user agent information when a modern mobile browser is detected.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3496
         * Currently limited to Safari on the iPhone/iPod Touch, Nokia N-series
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3497
         * devices with the WebKit-based browser, and Opera Mini.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3498
         * @property mobile
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3499
         * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3500
         * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3501
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3502
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3503
        mobile: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3504
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3505
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3506
         * Adobe AIR version number or 0.  Only populated if webkit is detected.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3507
         * Example: 1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3508
         * @property air
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3509
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3510
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3511
        air: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3512
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3513
         * PhantomJS version number or 0.  Only populated if webkit is detected.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3514
         * Example: 1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3515
         * @property phantomjs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3516
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3517
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3518
        phantomjs: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3519
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3520
         * Detects Apple iPad's OS version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3521
         * @property ipad
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3522
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3523
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3524
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3525
        ipad: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3526
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3527
         * Detects Apple iPhone's OS version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3528
         * @property iphone
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3529
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3530
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3531
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3532
        iphone: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3533
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3534
         * Detects Apples iPod's OS version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3535
         * @property ipod
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3536
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3537
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3538
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3539
        ipod: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3540
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3541
         * General truthy check for iPad, iPhone or iPod
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3542
         * @property ios
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3543
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3544
         * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3545
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3546
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3547
        ios: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3548
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3549
         * Detects Googles Android OS version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3550
         * @property android
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3551
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3552
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3553
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3554
        android: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3555
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3556
         * Detects Kindle Silk
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3557
         * @property silk
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3558
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3559
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3560
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3561
        silk: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3562
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3563
         * Detects Kindle Silk Acceleration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3564
         * @property accel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3565
         * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3566
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3567
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3568
        accel: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3569
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3570
         * Detects Palms WebOS version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3571
         * @property webos
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3572
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3573
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3574
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3575
        webos: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3576
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3577
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3578
         * Google Caja version number or 0.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3579
         * @property caja
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3580
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3581
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3582
        caja: nav && nav.cajaVersion,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3583
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3584
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3585
         * Set to true if the page appears to be in SSL
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3586
         * @property secure
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3587
         * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3588
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3589
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3590
        secure: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3591
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3592
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3593
         * The operating system.  Currently only detecting windows or macintosh
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3594
         * @property os
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3595
         * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3596
         * @default null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3597
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3598
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3599
        os: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3600
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3601
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3602
         * The Nodejs Version
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3603
         * @property nodejs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3604
         * @type float
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3605
         * @default 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3606
         * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3607
         */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3608
        nodejs: 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3609
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3610
        * Window8/IE10 Application host environment
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3611
        * @property winjs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3612
        * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3613
        * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3614
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3615
        winjs: !!((typeof Windows !== "undefined") && Windows.System),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3616
        /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3617
        * Are touch/msPointer events available on this device
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3618
        * @property touchEnabled
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3619
        * @type Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3620
        * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3621
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3622
        touchEnabled: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3623
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3624
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3625
    ua = subUA || nav && nav.userAgent,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3626
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3627
    loc = win && win.location,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3628
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3629
    href = loc && loc.href,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3630
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3631
    m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3632
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3633
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3634
    * The User Agent string that was parsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3635
    * @property userAgent
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3636
    * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3637
    * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3638
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3639
    o.userAgent = ua;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3640
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3641
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3642
    o.secure = href && (href.toLowerCase().indexOf('https') === 0);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3643
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3644
    if (ua) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3645
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3646
        if ((/windows|win32/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3647
            o.os = 'windows';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3648
        } else if ((/macintosh|mac_powerpc/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3649
            o.os = 'macintosh';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3650
        } else if ((/android/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3651
            o.os = 'android';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3652
        } else if ((/symbos/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3653
            o.os = 'symbos';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3654
        } else if ((/linux/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3655
            o.os = 'linux';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3656
        } else if ((/rhino/i).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3657
            o.os = 'rhino';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3658
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3659
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3660
        // Modern KHTML browsers should qualify as Safari X-Grade
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3661
        if ((/KHTML/).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3662
            o.webkit = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3663
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3664
        if ((/IEMobile|XBLWP7/).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3665
            o.mobile = 'windows';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3666
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3667
        if ((/Fennec/).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3668
            o.mobile = 'gecko';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3669
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3670
        // Modern WebKit browsers are at least X-Grade
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3671
        m = ua.match(/AppleWebKit\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3672
        if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3673
            o.webkit = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3674
            o.safari = o.webkit;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3675
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3676
            if (/PhantomJS/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3677
                m = ua.match(/PhantomJS\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3678
                if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3679
                    o.phantomjs = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3680
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3681
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3682
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3683
            // Mobile browser check
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3684
            if (/ Mobile\//.test(ua) || (/iPad|iPod|iPhone/).test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3685
                o.mobile = 'Apple'; // iPhone or iPod Touch
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3686
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3687
                m = ua.match(/OS ([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3688
                if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3689
                    m = numberify(m[1].replace('_', '.'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3690
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3691
                o.ios = m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3692
                o.os = 'ios';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3693
                o.ipad = o.ipod = o.iphone = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3694
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3695
                m = ua.match(/iPad|iPod|iPhone/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3696
                if (m && m[0]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3697
                    o[m[0].toLowerCase()] = o.ios;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3698
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3699
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3700
                m = ua.match(/NokiaN[^\/]*|webOS\/\d\.\d/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3701
                if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3702
                    // Nokia N-series, webOS, ex: NokiaN95
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3703
                    o.mobile = m[0];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3704
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3705
                if (/webOS/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3706
                    o.mobile = 'WebOS';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3707
                    m = ua.match(/webOS\/([^\s]*);/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3708
                    if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3709
                        o.webos = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3710
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3711
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3712
                if (/ Android/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3713
                    if (/Mobile/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3714
                        o.mobile = 'Android';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3715
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3716
                    m = ua.match(/Android ([^\s]*);/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3717
                    if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3718
                        o.android = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3719
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3720
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3721
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3722
                if (/Silk/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3723
                    m = ua.match(/Silk\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3724
                    if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3725
                        o.silk = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3726
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3727
                    if (!o.android) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3728
                        o.android = 2.34; //Hack for desktop mode in Kindle
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3729
                        o.os = 'Android';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3730
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3731
                    if (/Accelerated=true/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3732
                        o.accel = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3733
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3734
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3735
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3736
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3737
            m = ua.match(/OPR\/(\d+\.\d+)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3738
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3739
            if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3740
                // Opera 15+ with Blink (pretends to be both Chrome and Safari)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3741
                o.opera = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3742
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3743
                m = ua.match(/(Chrome|CrMo|CriOS)\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3744
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3745
                if (m && m[1] && m[2]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3746
                    o.chrome = numberify(m[2]); // Chrome
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3747
                    o.safari = 0; //Reset safari back to 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3748
                    if (m[1] === 'CrMo') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3749
                        o.mobile = 'chrome';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3750
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3751
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3752
                    m = ua.match(/AdobeAIR\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3753
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3754
                        o.air = m[0]; // Adobe AIR 1.0 or better
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3755
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3756
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3757
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3758
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3759
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3760
        if (!o.webkit) { // not webkit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3761
// @todo check Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3762
            if (/Opera/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3763
                m = ua.match(/Opera[\s\/]([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3764
                if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3765
                    o.opera = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3766
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3767
                m = ua.match(/Version\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3768
                if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3769
                    o.opera = numberify(m[1]); // opera 10+
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3770
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3771
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3772
                if (/Opera Mobi/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3773
                    o.mobile = 'opera';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3774
                    m = ua.replace('Opera Mobi', '').match(/Opera ([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3775
                    if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3776
                        o.opera = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3777
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3778
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3779
                m = ua.match(/Opera Mini[^;]*/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3780
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3781
                if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3782
                    o.mobile = m[0]; // ex: Opera Mini/2.0.4509/1316
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3783
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3784
            } else { // not opera or webkit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3785
                m = ua.match(/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3786
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3787
                if (m && (m[1] || m[2])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3788
                    o.ie = numberify(m[1] || m[2]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3789
                } else { // not opera, webkit, or ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3790
                    m = ua.match(/Gecko\/([^\s]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3791
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3792
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3793
                        o.gecko = 1; // Gecko detected, look for revision
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3794
                        m = ua.match(/rv:([^\s\)]*)/);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3795
                        if (m && m[1]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3796
                            o.gecko = numberify(m[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3797
                            if (/Mobile|Tablet/.test(ua)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3798
                                o.mobile = "ffos";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3799
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3800
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3801
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3802
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3803
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3804
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3805
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3806
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3807
    //Check for known properties to tell if touch events are enabled on this device or if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3808
    //the number of MSPointer touchpoints on this device is greater than 0.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3809
    if (win && nav && !(o.chrome && o.chrome < 6)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3810
        o.touchEnabled = (("ontouchstart" in win) || (("msMaxTouchPoints" in nav) && (nav.msMaxTouchPoints > 0)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3811
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3812
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3813
    //It was a parsed UA, do not assign the global value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3814
    if (!subUA) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3815
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3816
        if (typeof process === 'object') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3817
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3818
            if (process.versions && process.versions.node) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3819
                //NodeJS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3820
                o.os = process.platform;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3821
                o.nodejs = numberify(process.versions.node);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3822
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3823
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3824
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3825
        YUI.Env.UA = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3826
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3827
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3828
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3829
    return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3830
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3831
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3832
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3833
Y.UA = YUI.Env.UA || YUI.Env.parseUA();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3834
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3835
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3836
Performs a simple comparison between two version numbers, accounting for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3837
standard versioning logic such as the fact that "535.8" is a lower version than
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3838
"535.24", even though a simple numerical comparison would indicate that it's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3839
greater. Also accounts for cases such as "1.1" vs. "1.1.0", which are
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3840
considered equivalent.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3841
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3842
Returns -1 if version _a_ is lower than version _b_, 0 if they're equivalent,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3843
1 if _a_ is higher than _b_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3844
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3845
Versions may be numbers or strings containing numbers and dots. For example,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3846
both `535` and `"535.8.10"` are acceptable. A version string containing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3847
non-numeric characters, like `"535.8.beta"`, may produce unexpected results.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3848
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3849
@method compareVersions
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3850
@param {Number|String} a First version number to compare.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3851
@param {Number|String} b Second version number to compare.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3852
@return -1 if _a_ is lower than _b_, 0 if they're equivalent, 1 if _a_ is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3853
    higher than _b_.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3854
**/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3855
Y.UA.compareVersions = function (a, b) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3856
    var aPart, aParts, bPart, bParts, i, len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3857
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3858
    if (a === b) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3859
        return 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3860
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3861
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3862
    aParts = (a + '').split('.');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3863
    bParts = (b + '').split('.');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3864
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3865
    for (i = 0, len = Math.max(aParts.length, bParts.length); i < len; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3866
        aPart = parseInt(aParts[i], 10);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3867
        bPart = parseInt(bParts[i], 10);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3868
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3869
        /*jshint expr: true*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3870
        isNaN(aPart) && (aPart = 0);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3871
        isNaN(bPart) && (bPart = 0);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3872
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3873
        if (aPart < bPart) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3874
            return -1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3875
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3876
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3877
        if (aPart > bPart) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3878
            return 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3879
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3880
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3881
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3882
    return 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3883
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3884
YUI.Env.aliases = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3885
    "anim": ["anim-base","anim-color","anim-curve","anim-easing","anim-node-plugin","anim-scroll","anim-xy"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3886
    "anim-shape-transform": ["anim-shape"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3887
    "app": ["app-base","app-content","app-transitions","lazy-model-list","model","model-list","model-sync-rest","model-sync-local","router","view","view-node-map"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3888
    "attribute": ["attribute-base","attribute-complex"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3889
    "attribute-events": ["attribute-observable"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3890
    "autocomplete": ["autocomplete-base","autocomplete-sources","autocomplete-list","autocomplete-plugin"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3891
    "axes": ["axis-numeric","axis-category","axis-time","axis-stacked"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3892
    "axes-base": ["axis-numeric-base","axis-category-base","axis-time-base","axis-stacked-base"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3893
    "base": ["base-base","base-pluginhost","base-build"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3894
    "cache": ["cache-base","cache-offline","cache-plugin"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3895
    "charts": ["charts-base"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3896
    "collection": ["array-extras","arraylist","arraylist-add","arraylist-filter","array-invoke"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3897
    "color": ["color-base","color-hsl","color-harmony"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3898
    "controller": ["router"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3899
    "dataschema": ["dataschema-base","dataschema-json","dataschema-xml","dataschema-array","dataschema-text"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3900
    "datasource": ["datasource-local","datasource-io","datasource-get","datasource-function","datasource-cache","datasource-jsonschema","datasource-xmlschema","datasource-arrayschema","datasource-textschema","datasource-polling"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3901
    "datatable": ["datatable-core","datatable-table","datatable-head","datatable-body","datatable-base","datatable-column-widths","datatable-message","datatable-mutable","datatable-sort","datatable-datasource"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3902
    "datatype": ["datatype-date","datatype-number","datatype-xml"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3903
    "datatype-date": ["datatype-date-parse","datatype-date-format","datatype-date-math"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3904
    "datatype-number": ["datatype-number-parse","datatype-number-format"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3905
    "datatype-xml": ["datatype-xml-parse","datatype-xml-format"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3906
    "dd": ["dd-ddm-base","dd-ddm","dd-ddm-drop","dd-drag","dd-proxy","dd-constrain","dd-drop","dd-scroll","dd-delegate"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3907
    "dom": ["dom-base","dom-screen","dom-style","selector-native","selector"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3908
    "editor": ["frame","editor-selection","exec-command","editor-base","editor-para","editor-br","editor-bidi","editor-tab","createlink-base"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3909
    "event": ["event-base","event-delegate","event-synthetic","event-mousewheel","event-mouseenter","event-key","event-focus","event-resize","event-hover","event-outside","event-touch","event-move","event-flick","event-valuechange","event-tap"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3910
    "event-custom": ["event-custom-base","event-custom-complex"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3911
    "event-gestures": ["event-flick","event-move"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3912
    "handlebars": ["handlebars-compiler"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3913
    "highlight": ["highlight-base","highlight-accentfold"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3914
    "history": ["history-base","history-hash","history-html5"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3915
    "io": ["io-base","io-xdr","io-form","io-upload-iframe","io-queue"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3916
    "json": ["json-parse","json-stringify"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3917
    "loader": ["loader-base","loader-rollup","loader-yui3"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3918
    "node": ["node-base","node-event-delegate","node-pluginhost","node-screen","node-style"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3919
    "pluginhost": ["pluginhost-base","pluginhost-config"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3920
    "querystring": ["querystring-parse","querystring-stringify"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3921
    "recordset": ["recordset-base","recordset-sort","recordset-filter","recordset-indexer"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3922
    "resize": ["resize-base","resize-proxy","resize-constrain"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3923
    "slider": ["slider-base","slider-value-range","clickable-rail","range-slider"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3924
    "template": ["template-base","template-micro"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3925
    "text": ["text-accentfold","text-wordbreak"],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3926
    "widget": ["widget-base","widget-htmlparser","widget-skin","widget-uievents"]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3927
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3928
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3929
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3930
}, '@VERSION@', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3931
    "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3932
        "yui-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3933
        "get",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3934
        "features",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3935
        "intl-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3936
        "yui-log",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3937
        "yui-log-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3938
        "yui-later",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3939
        "loader-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3940
        "loader-rollup",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3941
        "loader-yui3"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3942
    ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3943
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3944
YUI.add('get', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3945
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3946
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3947
    * NodeJS specific Get module used to load remote resources.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3948
    * It contains the same signature as the default Get module so there is no code change needed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3949
    * @module get-nodejs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3950
    * @class GetNodeJS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3951
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3952
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3953
    var Module = require('module'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3954
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3955
        path = require('path'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3956
        fs = require('fs'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3957
        request = require('request'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3958
        end = function(cb, msg, result) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3959
            if (Y.Lang.isFunction(cb.onEnd)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3960
                cb.onEnd.call(Y, msg, result);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3961
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3962
        }, pass = function(cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3963
            if (Y.Lang.isFunction(cb.onSuccess)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3964
                cb.onSuccess.call(Y, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3965
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3966
            end(cb, 'success', 'success');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3967
        }, fail = function(cb, er) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3968
            er.errors = [er];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3969
            if (Y.Lang.isFunction(cb.onFailure)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3970
                cb.onFailure.call(Y, er, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3971
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3972
            end(cb, er, 'fail');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3973
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3974
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3975
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3976
    Y.Get = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3977
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3978
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3979
    //Setup the default config base path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3980
    Y.config.base = path.join(__dirname, '../');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3981
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3982
    YUI.require = require;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3983
    YUI.process = process;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3984
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3985
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3986
    * Takes the raw JS files and wraps them to be executed in the YUI context so they can be loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3987
    * into the YUI object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3988
    * @method _exec
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3989
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3990
    * @param {String} data The JS to execute
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3991
    * @param {String} url The path to the file that was parsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3992
    * @param {Function} cb The callback to execute when this is completed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3993
    * @param {Error} cb.err=null Error object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3994
    * @param {String} cb.url The URL that was just parsed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3995
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3996
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3997
    Y.Get._exec = function(data, url, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3998
        if (data.charCodeAt(0) === 0xFEFF) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  3999
            data = data.slice(1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4000
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4001
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4002
        var mod = new Module(url, module);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4003
        mod.filename = url;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4004
        mod.paths = Module._nodeModulePaths(path.dirname(url));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4005
        if (typeof YUI._getLoadHook === 'function') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4006
            data = YUI._getLoadHook(data, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4007
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4008
        mod._compile('module.exports = function (YUI) {' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4009
            'return (function () {'+ data + '\n;return YUI;}).apply(global);' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4010
        '};', url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4011
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4012
        /*global YUI:true */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4013
        YUI = mod.exports(YUI);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4014
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4015
        mod.loaded = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4016
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4017
        cb(null, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4018
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4019
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4020
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4021
    * Fetches the content from a remote URL or a file from disc and passes the content
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4022
    * off to `_exec` for parsing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4023
    * @method _include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4024
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4025
    * @param {String} url The URL/File path to fetch the content from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4026
    * @param {Function} cb The callback to fire once the content has been executed via `_exec`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4027
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4028
    Y.Get._include = function (url, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4029
        var cfg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4030
            mod,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4031
            self = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4032
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4033
        if (url.match(/^https?:\/\//)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4034
            cfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4035
                url: url,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4036
                timeout: self.timeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4037
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4038
            request(cfg, function (err, response, body) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4039
                if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4040
                    cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4041
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4042
                    Y.Get._exec(body, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4043
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4044
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4045
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4046
            try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4047
                // Try to resolve paths relative to the module that required yui.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4048
                url = Module._findPath(url, Module._resolveLookupPaths(url, module.parent.parent)[1]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4049
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4050
                if (Y.config.useSync) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4051
                    //Needs to be in useSync
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4052
                    mod = fs.readFileSync(url,'utf8');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4053
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4054
                    fs.readFile(url, 'utf8', function (err, mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4055
                        if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4056
                            cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4057
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4058
                            Y.Get._exec(mod, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4059
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4060
                    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4061
                    return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4062
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4063
            } catch (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4064
                cb(err, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4065
                return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4066
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4067
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4068
            Y.Get._exec(mod, url, cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4069
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4070
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4071
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4072
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4073
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4074
    * Override for Get.script for loading local or remote YUI modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4075
    * @method js
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4076
    * @param {Array|String} s The URL's to load into this context
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4077
    * @param {Object} options Transaction options
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4078
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4079
    Y.Get.js = function(s, options) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4080
        var urls = Y.Array(s), url, i, l = urls.length, c= 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4081
            check = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4082
                if (c === l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4083
                    pass(options);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4084
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4085
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4086
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4087
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4088
        /*jshint loopfunc: true */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4089
        for (i=0; i<l; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4090
            url = urls[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4091
            if (Y.Lang.isObject(url)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4092
                url = url.url;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4093
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4094
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4095
            url = url.replace(/'/g, '%27');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4096
            Y.Get._include(url, function(err, url) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4097
                if (!Y.config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4098
                    Y.config = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4099
                        debug: true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4100
                    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4101
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4102
                if (options.onProgress) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4103
                    options.onProgress.call(options.context || Y, url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4104
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4105
                if (err) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4106
                    fail(options, err);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4107
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4108
                    c++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4109
                    check();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4110
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4111
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4112
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4113
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4114
        //Keeping Signature in the browser.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4115
        return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4116
            execute: function() {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4117
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4118
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4119
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4120
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4121
    * Alias for `Y.Get.js`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4122
    * @method script
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4123
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4124
    Y.Get.script = Y.Get.js;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4125
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4126
    //Place holder for SS Dom access
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4127
    Y.Get.css = function(s, cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4128
        pass(cb);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4129
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4130
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4131
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4132
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4133
}, '@VERSION@');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4134
YUI.add('features', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4135
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4136
var feature_tests = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4137
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4138
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4139
Contains the core of YUI's feature test architecture.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4140
@module features
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4141
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4142
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4143
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4144
* Feature detection
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4145
* @class Features
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4146
* @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4147
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4148
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4149
Y.mix(Y.namespace('Features'), {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4150
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4151
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4152
    * Object hash of all registered feature tests
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4153
    * @property tests
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4154
    * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4155
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4156
    tests: feature_tests,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4157
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4158
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4159
    * Add a test to the system
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4160
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4161
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4162
    *   Y.Features.add("load", "1", {});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4163
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4164
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4165
    * @method add
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4166
    * @param {String} cat The category, right now only 'load' is supported
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4167
    * @param {String} name The number sequence of the test, how it's reported in the URL or config: 1, 2, 3
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4168
    * @param {Object} o Object containing test properties
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4169
    * @param {String} o.name The name of the test
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4170
    * @param {Function} o.test The test function to execute, the only argument to the function is the `Y` instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4171
    * @param {String} o.trigger The module that triggers this test.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4172
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4173
    add: function(cat, name, o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4174
        feature_tests[cat] = feature_tests[cat] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4175
        feature_tests[cat][name] = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4176
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4177
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4178
    * Execute all tests of a given category and return the serialized results
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4179
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4180
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4181
    *   caps=1:1;2:1;3:0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4182
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4183
    * @method all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4184
    * @param {String} cat The category to execute
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4185
    * @param {Array} args The arguments to pass to the test function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4186
    * @return {String} A semi-colon separated string of tests and their success/failure: 1:1;2:1;3:0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4187
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4188
    all: function(cat, args) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4189
        var cat_o = feature_tests[cat],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4190
            // results = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4191
            result = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4192
        if (cat_o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4193
            Y.Object.each(cat_o, function(v, k) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4194
                result.push(k + ':' + (Y.Features.test(cat, k, args) ? 1 : 0));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4195
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4196
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4197
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4198
        return (result.length) ? result.join(';') : '';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4199
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4200
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4201
    * Run a sepecific test and return a Boolean response.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4202
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4203
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4204
    *   Y.Features.test("load", "1");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4205
    *   ```
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4206
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4207
    * @method test
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4208
    * @param {String} cat The category of the test to run
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4209
    * @param {String} name The name of the test to run
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4210
    * @param {Array} args The arguments to pass to the test function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4211
    * @return {Boolean} True or false if the test passed/failed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4212
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4213
    test: function(cat, name, args) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4214
        args = args || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4215
        var result, ua, test,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4216
            cat_o = feature_tests[cat],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4217
            feature = cat_o && cat_o[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4218
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4219
        if (!feature) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4220
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4221
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4222
            result = feature.result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4223
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4224
            if (Y.Lang.isUndefined(result)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4225
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4226
                ua = feature.ua;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4227
                if (ua) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4228
                    result = (Y.UA[ua]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4229
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4230
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4231
                test = feature.test;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4232
                if (test && ((!ua) || result)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4233
                    result = test.apply(Y, args);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4234
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4235
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4236
                feature.result = result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4237
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4238
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4239
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4240
        return result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4241
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4242
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4243
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4244
// Y.Features.add("load", "1", {});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4245
// Y.Features.test("load", "1");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4246
// caps=1:1;2:0;3:1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4247
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4248
/* This file is auto-generated by (yogi loader --yes --mix --start ../) */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4249
/*jshint maxlen:900, eqeqeq: false */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4250
var add = Y.Features.add;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4251
// app-transitions-native
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4252
add('load', '0', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4253
    "name": "app-transitions-native",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4254
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4255
    var doc  = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4256
        node = doc ? doc.documentElement : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4257
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4258
    if (node && node.style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4259
        return ('MozTransition' in node.style || 'WebkitTransition' in node.style || 'transition' in node.style);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4260
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4261
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4262
    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4263
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4264
    "trigger": "app-transitions"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4265
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4266
// autocomplete-list-keys
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4267
add('load', '1', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4268
    "name": "autocomplete-list-keys",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4269
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4270
    // Only add keyboard support to autocomplete-list if this doesn't appear to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4271
    // be an iOS or Android-based mobile device.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4272
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4273
    // There's currently no feasible way to actually detect whether a device has
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4274
    // a hardware keyboard, so this sniff will have to do. It can easily be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4275
    // overridden by manually loading the autocomplete-list-keys module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4276
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4277
    // Worth noting: even though iOS supports bluetooth keyboards, Mobile Safari
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4278
    // doesn't fire the keyboard events used by AutoCompleteList, so there's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4279
    // no point loading the -keys module even when a bluetooth keyboard may be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4280
    // available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4281
    return !(Y.UA.ios || Y.UA.android);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4282
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4283
    "trigger": "autocomplete-list"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4284
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4285
// dd-gestures
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4286
add('load', '2', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4287
    "name": "dd-gestures",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4288
    "trigger": "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4289
    "ua": "touchEnabled"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4290
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4291
// dom-style-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4292
add('load', '3', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4293
    "name": "dom-style-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4294
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4295
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4296
    var testFeature = Y.Features.test,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4297
        addFeature = Y.Features.add,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4298
        WINDOW = Y.config.win,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4299
        DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4300
        DOCUMENT_ELEMENT = 'documentElement',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4301
        ret = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4302
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4303
    addFeature('style', 'computedStyle', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4304
        test: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4305
            return WINDOW && 'getComputedStyle' in WINDOW;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4306
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4307
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4308
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4309
    addFeature('style', 'opacity', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4310
        test: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4311
            return DOCUMENT && 'opacity' in DOCUMENT[DOCUMENT_ELEMENT].style;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4312
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4313
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4314
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4315
    ret =  (!testFeature('style', 'opacity') &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4316
            !testFeature('style', 'computedStyle'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4317
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4318
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4319
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4320
    "trigger": "dom-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4321
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4322
// editor-para-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4323
add('load', '4', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4324
    "name": "editor-para-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4325
    "trigger": "editor-para",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4326
    "ua": "ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4327
    "when": "instead"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4328
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4329
// event-base-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4330
add('load', '5', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4331
    "name": "event-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4332
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4333
    var imp = Y.config.doc && Y.config.doc.implementation;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4334
    return (imp && (!imp.hasFeature('Events', '2.0')));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4335
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4336
    "trigger": "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4337
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4338
// graphics-canvas
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4339
add('load', '6', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4340
    "name": "graphics-canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4341
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4342
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4343
        useCanvas = Y.config.defaultGraphicEngine && Y.config.defaultGraphicEngine == "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4344
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4345
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4346
    return (!svg || useCanvas) && (canvas && canvas.getContext && canvas.getContext("2d"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4347
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4348
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4349
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4350
// graphics-canvas-default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4351
add('load', '7', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4352
    "name": "graphics-canvas-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4353
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4354
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4355
        useCanvas = Y.config.defaultGraphicEngine && Y.config.defaultGraphicEngine == "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4356
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4357
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4358
    return (!svg || useCanvas) && (canvas && canvas.getContext && canvas.getContext("2d"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4359
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4360
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4361
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4362
// graphics-svg
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4363
add('load', '8', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4364
    "name": "graphics-svg",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4365
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4366
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4367
        useSVG = !Y.config.defaultGraphicEngine || Y.config.defaultGraphicEngine != "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4368
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4369
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4370
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4371
    return svg && (useSVG || !canvas);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4372
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4373
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4374
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4375
// graphics-svg-default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4376
add('load', '9', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4377
    "name": "graphics-svg-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4378
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4379
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4380
        useSVG = !Y.config.defaultGraphicEngine || Y.config.defaultGraphicEngine != "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4381
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4382
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4383
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4384
    return svg && (useSVG || !canvas);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4385
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4386
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4387
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4388
// graphics-vml
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4389
add('load', '10', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4390
    "name": "graphics-vml",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4391
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4392
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4393
		canvas = DOCUMENT && DOCUMENT.createElement("canvas");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4394
    return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d")));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4395
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4396
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4397
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4398
// graphics-vml-default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4399
add('load', '11', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4400
    "name": "graphics-vml-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4401
    "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4402
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4403
		canvas = DOCUMENT && DOCUMENT.createElement("canvas");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4404
    return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d")));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4405
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4406
    "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4407
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4408
// history-hash-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4409
add('load', '12', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4410
    "name": "history-hash-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4411
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4412
    var docMode = Y.config.doc && Y.config.doc.documentMode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4413
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4414
    return Y.UA.ie && (!('onhashchange' in Y.config.win) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4415
            !docMode || docMode < 8);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4416
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4417
    "trigger": "history-hash"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4418
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4419
// io-nodejs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4420
add('load', '13', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4421
    "name": "io-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4422
    "trigger": "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4423
    "ua": "nodejs"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4424
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4425
// json-parse-shim
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4426
add('load', '14', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4427
    "name": "json-parse-shim",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4428
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4429
    var _JSON = Y.config.global.JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4430
        Native = Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4431
        nativeSupport = Y.config.useNativeJSONParse !== false && !!Native;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4432
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4433
    function workingNative( k, v ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4434
        return k === "ok" ? true : v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4435
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4436
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4437
    // Double check basic functionality.  This is mainly to catch early broken
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4438
    // implementations of the JSON API in Firefox 3.1 beta1 and beta2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4439
    if ( nativeSupport ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4440
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4441
            nativeSupport = ( Native.parse( '{"ok":false}', workingNative ) ).ok;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4442
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4443
        catch ( e ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4444
            nativeSupport = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4445
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4446
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4447
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4448
    return !nativeSupport;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4449
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4450
    "trigger": "json-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4451
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4452
// json-stringify-shim
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4453
add('load', '15', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4454
    "name": "json-stringify-shim",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4455
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4456
    var _JSON = Y.config.global.JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4457
        Native = Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4458
        nativeSupport = Y.config.useNativeJSONStringify !== false && !!Native;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4459
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4460
    // Double check basic native functionality.  This is primarily to catch broken
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4461
    // early JSON API implementations in Firefox 3.1 beta1 and beta2.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4462
    if ( nativeSupport ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4463
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4464
            nativeSupport = ( '0' === Native.stringify(0) );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4465
        } catch ( e ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4466
            nativeSupport = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4467
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4468
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4469
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4470
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4471
    return !nativeSupport;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4472
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4473
    "trigger": "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4474
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4475
// scrollview-base-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4476
add('load', '16', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4477
    "name": "scrollview-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4478
    "trigger": "scrollview-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4479
    "ua": "ie"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4480
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4481
// selector-css2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4482
add('load', '17', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4483
    "name": "selector-css2",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4484
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4485
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4486
        ret = DOCUMENT && !('querySelectorAll' in DOCUMENT);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4487
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4488
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4489
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4490
    "trigger": "selector"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4491
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4492
// transition-timer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4493
add('load', '18', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4494
    "name": "transition-timer",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4495
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4496
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4497
        node = (DOCUMENT) ? DOCUMENT.documentElement: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4498
        ret = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4499
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4500
    if (node && node.style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4501
        ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style || 'transition' in node.style);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4502
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4504
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4505
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4506
    "trigger": "transition"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4507
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4508
// widget-base-ie
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4509
add('load', '19', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4510
    "name": "widget-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4511
    "trigger": "widget-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4512
    "ua": "ie"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4513
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4514
// yql-jsonp
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4515
add('load', '20', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4516
    "name": "yql-jsonp",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4517
    "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4518
    /* Only load the JSONP module when not in nodejs or winjs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4519
    TODO Make the winjs module a CORS module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4520
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4521
    return (!Y.UA.nodejs && !Y.UA.winjs);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4522
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4523
    "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4524
    "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4525
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4526
// yql-nodejs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4527
add('load', '21', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4528
    "name": "yql-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4529
    "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4530
    "ua": "nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4531
    "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4532
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4533
// yql-winjs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4534
add('load', '22', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4535
    "name": "yql-winjs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4536
    "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4537
    "ua": "winjs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4538
    "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4539
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4540
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4541
}, '@VERSION@', {"requires": ["yui-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4542
YUI.add('intl-base', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4543
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4544
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4545
 * The Intl utility provides a central location for managing sets of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4546
 * localized resources (strings and formatting patterns).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4547
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4548
 * @class Intl
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4549
 * @uses EventTarget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4550
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4551
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4552
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4553
var SPLIT_REGEX = /[, ]/;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4554
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4555
Y.mix(Y.namespace('Intl'), {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4556
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4557
 /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4558
    * Returns the language among those available that
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4559
    * best matches the preferred language list, using the Lookup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4560
    * algorithm of BCP 47.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4561
    * If none of the available languages meets the user's preferences,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4562
    * then "" is returned.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4563
    * Extended language ranges are not supported.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4564
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4565
    * @method lookupBestLang
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4566
    * @param {String[] | String} preferredLanguages The list of preferred
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4567
    * languages in descending preference order, represented as BCP 47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4568
    * language tags. A string array or a comma-separated list.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4569
    * @param {String[]} availableLanguages The list of languages
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4570
    * that the application supports, represented as BCP 47 language
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4571
    * tags.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4572
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4573
    * @return {String} The available language that best matches the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4574
    * preferred language list, or "".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4575
    * @since 3.1.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4576
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4577
    lookupBestLang: function(preferredLanguages, availableLanguages) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4578
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4579
        var i, language, result, index;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4580
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4581
        // check whether the list of available languages contains language;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4582
        // if so return it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4583
        function scan(language) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4584
            var i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4585
            for (i = 0; i < availableLanguages.length; i += 1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4586
                if (language.toLowerCase() ===
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4587
                            availableLanguages[i].toLowerCase()) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4588
                    return availableLanguages[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4589
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4590
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4591
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4592
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4593
        if (Y.Lang.isString(preferredLanguages)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4594
            preferredLanguages = preferredLanguages.split(SPLIT_REGEX);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4595
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4596
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4597
        for (i = 0; i < preferredLanguages.length; i += 1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4598
            language = preferredLanguages[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4599
            if (!language || language === '*') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4600
                continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4601
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4602
            // check the fallback sequence for one language
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4603
            while (language.length > 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4604
                result = scan(language);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4605
                if (result) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4606
                    return result;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4607
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4608
                    index = language.lastIndexOf('-');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4609
                    if (index >= 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4610
                        language = language.substring(0, index);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4611
                        // one-character subtags get cut along with the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4612
                        // following subtag
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4613
                        if (index >= 2 && language.charAt(index - 2) === '-') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4614
                            language = language.substring(0, index - 2);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4615
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4616
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4617
                        // nothing available for this language
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4618
                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4619
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4620
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4621
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4622
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4623
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4624
        return '';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4625
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4626
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4627
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4628
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4629
}, '@VERSION@', {"requires": ["yui-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4630
YUI.add('yui-log', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4631
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4632
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4633
 * Provides console log capability and exposes a custom event for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4634
 * console implementations. This module is a `core` YUI module,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4635
 * <a href="../classes/YUI.html#method_log">it's documentation is located under the YUI class</a>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4636
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4637
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4638
 * @submodule yui-log
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4639
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4640
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4641
var INSTANCE = Y,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4642
    LOGEVENT = 'yui:log',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4643
    UNDEFINED = 'undefined',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4644
    LEVELS = { debug: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4645
               info: 2,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4646
               warn: 4,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4647
               error: 8 };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4648
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4649
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4650
 * If the 'debug' config is true, a 'yui:log' event will be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4651
 * dispatched, which the Console widget and anything else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4652
 * can consume.  If the 'useBrowserConsole' config is true, it will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4653
 * write to the browser console if available.  YUI-specific log
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4654
 * messages will only be present in the -debug versions of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4655
 * JS files.  The build system is supposed to remove log statements
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4656
 * from the raw and minified versions of the files.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4657
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4658
 * @method log
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4659
 * @for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4660
 * @param  {String}  msg  The message to log.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4661
 * @param  {String}  cat  The log category for the message.  Default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4662
 *                        categories are "info", "warn", "error", "debug".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4663
 *                        Custom categories can be used as well. (opt).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4664
 * @param  {String}  src  The source of the the message (opt).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4665
 * @param  {boolean} silent If true, the log event won't fire.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4666
 * @return {YUI}      YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4667
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4668
INSTANCE.log = function(msg, cat, src, silent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4669
    var bail, excl, incl, m, f, minlevel,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4670
        Y = INSTANCE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4671
        c = Y.config,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4672
        publisher = (Y.fire) ? Y : YUI.Env.globalEvents;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4673
    // suppress log message if the config is off or the event stack
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4674
    // or the event call stack contains a consumer of the yui:log event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4675
    if (c.debug) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4676
        // apply source filters
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4677
        src = src || "";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4678
        if (typeof src !== "undefined") {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4679
            excl = c.logExclude;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4680
            incl = c.logInclude;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4681
            if (incl && !(src in incl)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4682
                bail = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4683
            } else if (incl && (src in incl)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4684
                bail = !incl[src];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4685
            } else if (excl && (src in excl)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4686
                bail = excl[src];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4687
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4688
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4689
            // Set a default category of info if the category was not defined or was not
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4690
            // a real category.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4691
            if ((typeof cat === 'undefined') || !(cat in LEVELS)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4692
                cat = 'info';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4693
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4694
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4695
            // Determine the current minlevel as defined in configuration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4696
            Y.config.logLevel = Y.config.logLevel || 'debug';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4697
            minlevel = LEVELS[Y.config.logLevel.toLowerCase()];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4698
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4699
            if (cat in LEVELS && LEVELS[cat] < minlevel) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4700
                // Skip this message if the we don't meet the defined minlevel
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4701
                bail = 1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4702
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4703
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4704
        if (!bail) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4705
            if (c.useBrowserConsole) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4706
                m = (src) ? src + ': ' + msg : msg;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4707
                if (Y.Lang.isFunction(c.logFn)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4708
                    c.logFn.call(Y, msg, cat, src);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4709
                } else if (typeof console !== UNDEFINED && console.log) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4710
                    f = (cat && console[cat] && (cat in LEVELS)) ? cat : 'log';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4711
                    console[f](m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4712
                } else if (typeof opera !== UNDEFINED) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4713
                    opera.postError(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4714
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4715
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4716
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4717
            if (publisher && !silent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4718
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4719
                if (publisher === Y && (!publisher.getEvent(LOGEVENT))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4720
                    publisher.publish(LOGEVENT, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4721
                        broadcast: 2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4722
                    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4723
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4724
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4725
                publisher.fire(LOGEVENT, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4726
                    msg: msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4727
                    cat: cat,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4728
                    src: src
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4729
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4730
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4731
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4732
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4733
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4734
    return Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4735
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4736
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4737
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4738
 * Write a system message.  This message will be preserved in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4739
 * minified and raw versions of the YUI files, unlike log statements.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4740
 * @method message
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4741
 * @for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4742
 * @param  {String}  msg  The message to log.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4743
 * @param  {String}  cat  The log category for the message.  Default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4744
 *                        categories are "info", "warn", "error", "debug".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4745
 *                        Custom categories can be used as well. (opt).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4746
 * @param  {String}  src  The source of the the message (opt).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4747
 * @param  {boolean} silent If true, the log event won't fire.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4748
 * @return {YUI}      YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4749
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4750
INSTANCE.message = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4751
    return INSTANCE.log.apply(INSTANCE, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4752
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4753
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4754
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4755
}, '@VERSION@', {"requires": ["yui-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4756
YUI.add('yui-log-nodejs', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4757
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4758
var sys = require(process.binding('natives').util ? 'util' : 'sys'),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4759
    hasColor = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4760
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4761
try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4762
    var stdio = require("stdio");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4763
    hasColor = stdio.isStderrATTY();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4764
} catch (ex) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4765
    hasColor = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4766
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4767
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4768
Y.config.useColor = hasColor;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4769
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4770
Y.consoleColor = function(str, num) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4771
    if (!this.config.useColor) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4772
        return str;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4773
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4774
    if (!num) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4775
        num = '32';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4776
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4777
    return "\u001b[" + num +"m" + str + "\u001b[0m";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4778
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4779
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4780
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4781
var logFn = function(str, t, m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4782
    var id = '', lvl, mLvl;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4783
    if (this.id) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4784
        id = '[' + this.id + ']:';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4785
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4786
    t = t || 'info';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4787
    m = (m) ? this.consoleColor(' (' +  m.toLowerCase() + '):', 35) : '';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4788
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4789
    if (str === null) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4790
        str = 'null';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4791
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4792
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4793
    if ((typeof str === 'object') || str instanceof Array) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4794
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4795
            //Should we use this?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4796
            if (str.tagName || str._yuid || str._query) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4797
                str = str.toString();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4798
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4799
                str = sys.inspect(str);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4800
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4801
        } catch (e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4802
            //Fail catcher
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4803
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4804
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4805
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4806
    lvl = '37;40';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4807
    mLvl = ((str) ? '' : 31);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4808
    t = t+''; //Force to a string..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4809
    switch (t.toLowerCase()) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4810
        case 'error':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4811
            lvl = mLvl = 31;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4812
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4813
        case 'warn':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4814
            lvl = 33;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4815
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4816
        case 'debug':
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4817
            lvl = 34;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4818
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4819
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4820
    if (typeof str === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4821
        if (str && str.indexOf("\n") !== -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4822
            str = "\n" + str;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4823
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4824
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4825
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4826
    // output log messages to stderr
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4827
    sys.error(this.consoleColor(t.toLowerCase() + ':', lvl) + m + ' ' + this.consoleColor(str, mLvl));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4828
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4829
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4830
if (!Y.config.logFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4831
    Y.config.logFn = logFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4832
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4833
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4834
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4835
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4836
}, '@VERSION@');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4837
YUI.add('yui-later', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4838
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4839
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4840
 * Provides a setTimeout/setInterval wrapper. This module is a `core` YUI module,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4841
 * <a href="../classes/YUI.html#method_later">it's documentation is located under the YUI class</a>.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4842
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4843
 * @module yui
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4844
 * @submodule yui-later
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4845
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4846
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4847
var NO_ARGS = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4848
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4849
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4850
 * Executes the supplied function in the context of the supplied
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4851
 * object 'when' milliseconds later.  Executes the function a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4852
 * single time unless periodic is set to true.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4853
 * @for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4854
 * @method later
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4855
 * @param when {Number} the number of milliseconds to wait until the fn
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4856
 * is executed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4857
 * @param o the context object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4858
 * @param fn {Function|String} the function to execute or the name of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4859
 * the method in the 'o' object to execute.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4860
 * @param data [Array] data that is provided to the function.  This
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4861
 * accepts either a single item or an array.  If an array is provided,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4862
 * the function is executed with one parameter for each array item.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4863
 * If you need to pass a single array parameter, it needs to be wrapped
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4864
 * in an array [myarray].
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4865
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4866
 * Note: native methods in IE may not have the call and apply methods.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4867
 * In this case, it will work, but you are limited to four arguments.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4868
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4869
 * @param periodic {boolean} if true, executes continuously at supplied
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4870
 * interval until canceled.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4871
 * @return {object} a timer object. Call the cancel() method on this
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4872
 * object to stop the timer.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4873
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4874
Y.later = function(when, o, fn, data, periodic) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4875
    when = when || 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4876
    data = (!Y.Lang.isUndefined(data)) ? Y.Array(data) : NO_ARGS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4877
    o = o || Y.config.win || Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4878
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4879
    var cancelled = false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4880
        method = (o && Y.Lang.isString(fn)) ? o[fn] : fn,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4881
        wrapper = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4882
            // IE 8- may execute a setInterval callback one last time
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4883
            // after clearInterval was called, so in order to preserve
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4884
            // the cancel() === no more runny-run, we have to jump through
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4885
            // an extra hoop.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4886
            if (!cancelled) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4887
                if (!method.apply) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4888
                    method(data[0], data[1], data[2], data[3]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4889
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4890
                    method.apply(o, data || NO_ARGS);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4891
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4892
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4893
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4894
        id = (periodic) ? setInterval(wrapper, when) : setTimeout(wrapper, when);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4895
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4896
    return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4897
        id: id,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4898
        interval: periodic,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4899
        cancel: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4900
            cancelled = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4901
            if (this.interval) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4902
                clearInterval(id);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4903
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4904
                clearTimeout(id);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4905
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4906
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4907
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4908
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4909
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4910
Y.Lang.later = Y.later;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4911
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4912
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4913
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4914
}, '@VERSION@', {"requires": ["yui-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4915
YUI.add('loader-base', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4916
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4917
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4918
 * The YUI loader core
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4919
 * @module loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4920
 * @submodule loader-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4921
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4922
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4923
(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4924
    var VERSION = Y.version,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4925
        BUILD = '/build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4926
        ROOT = VERSION + '/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4927
        CDN_BASE = Y.Env.base,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4928
        GALLERY_VERSION = 'gallery-2014.02.20-23-55',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4929
        TNT = '2in3',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4930
        TNT_VERSION = '4',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4931
        YUI2_VERSION = '2.9.0',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4932
        COMBO_BASE = CDN_BASE + 'combo?',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4933
        META = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4934
            version: VERSION,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4935
            root: ROOT,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4936
            base: Y.Env.base,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4937
            comboBase: COMBO_BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4938
            skin: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4939
                defaultSkin: 'sam',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4940
                base: 'assets/skins/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4941
                path: 'skin.css',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4942
                after: [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4943
                    'cssreset',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4944
                    'cssfonts',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4945
                    'cssgrids',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4946
                    'cssbase',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4947
                    'cssreset-context',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4948
                    'cssfonts-context'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4949
                ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4950
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4951
            groups: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4952
            patterns: {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4953
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4954
        groups = META.groups,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4955
        yui2Update = function(tnt, yui2, config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4956
            var root = TNT + '.' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4957
                    (tnt || TNT_VERSION) + '/' +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4958
                    (yui2 || YUI2_VERSION) + BUILD,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4959
                base = (config && config.base) ? config.base : CDN_BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4960
                combo = (config && config.comboBase) ? config.comboBase : COMBO_BASE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4961
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4962
            groups.yui2.base = base + root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4963
            groups.yui2.root = root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4964
            groups.yui2.comboBase = combo;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4965
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4966
        galleryUpdate = function(tag, config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4967
            var root = (tag || GALLERY_VERSION) + BUILD,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4968
                base = (config && config.base) ? config.base : CDN_BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4969
                combo = (config && config.comboBase) ? config.comboBase : COMBO_BASE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4970
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4971
            groups.gallery.base = base + root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4972
            groups.gallery.root = root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4973
            groups.gallery.comboBase = combo;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4974
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4975
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4976
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4977
    groups[VERSION] = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4978
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4979
    groups.gallery = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4980
        ext: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4981
        combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4982
        comboBase: COMBO_BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4983
        update: galleryUpdate,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4984
        patterns: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4985
            'gallery-': {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4986
            'lang/gallery-': {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4987
            'gallerycss-': {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4988
                type: 'css'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4989
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4990
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4991
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4992
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4993
    groups.yui2 = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4994
        combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4995
        ext: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4996
        comboBase: COMBO_BASE,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4997
        update: yui2Update,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4998
        patterns: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  4999
            'yui2-': {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5000
                configFn: function(me) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5001
                    if (/-skin|reset|fonts|grids|base/.test(me.name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5002
                        me.type = 'css';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5003
                        me.path = me.path.replace(/\.js/, '.css');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5004
                        // this makes skins in builds earlier than
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5005
                        // 2.6.0 work as long as combine is false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5006
                        me.path = me.path.replace(/\/yui2-skin/,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5007
                                            '/assets/skins/sam/yui2-skin');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5008
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5009
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5010
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5011
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5012
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5013
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5014
    galleryUpdate();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5015
    yui2Update();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5016
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5017
    if (YUI.Env[VERSION]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5018
        Y.mix(META, YUI.Env[VERSION], false, [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5019
            'modules',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5020
            'groups',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5021
            'skin'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5022
        ], 0, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5023
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5024
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5025
    YUI.Env[VERSION] = META;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5026
}());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5027
/*jslint forin: true, maxlen: 350 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5028
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5029
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5030
 * Loader dynamically loads script and css files.  It includes the dependency
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5031
 * information for the version of the library in use, and will automatically pull in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5032
 * dependencies for the modules requested. It can also load the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5033
 * files from the Yahoo! CDN, and it can utilize the combo service provided on
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5034
 * this network to reduce the number of http connections required to download
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5035
 * YUI files.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5036
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5037
 * @module loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5038
 * @main loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5039
 * @submodule loader-base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5040
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5041
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5042
var NOT_FOUND = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5043
    NO_REQUIREMENTS = [],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5044
    MAX_URL_LENGTH = 1024,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5045
    GLOBAL_ENV = YUI.Env,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5046
    GLOBAL_LOADED = GLOBAL_ENV._loaded,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5047
    CSS = 'css',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5048
    JS = 'js',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5049
    INTL = 'intl',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5050
    DEFAULT_SKIN = 'sam',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5051
    VERSION = Y.version,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5052
    ROOT_LANG = '',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5053
    YObject = Y.Object,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5054
    oeach = YObject.each,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5055
    yArray = Y.Array,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5056
    _queue = GLOBAL_ENV._loaderQueue,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5057
    META = GLOBAL_ENV[VERSION],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5058
    SKIN_PREFIX = 'skin-',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5059
    L = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5060
    ON_PAGE = GLOBAL_ENV.mods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5061
    modulekey,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5062
    _path = function(dir, file, type, nomin) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5063
        var path = dir + '/' + file;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5064
        if (!nomin) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5065
            path += '-min';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5066
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5067
        path += '.' + (type || CSS);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5068
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5069
        return path;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5070
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5071
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5072
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5073
    if (!YUI.Env._cssLoaded) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5074
        YUI.Env._cssLoaded = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5075
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5076
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5077
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5078
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5079
 * The component metadata is stored in Y.Env.meta.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5080
 * Part of the loader module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5081
 * @property meta
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5082
 * @for YUI
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5083
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5084
Y.Env.meta = META;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5085
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5086
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5087
 * Loader dynamically loads script and css files.  It includes the dependency
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5088
 * info for the version of the library in use, and will automatically pull in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5089
 * dependencies for the modules requested. It can load the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5090
 * files from the Yahoo! CDN, and it can utilize the combo service provided on
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5091
 * this network to reduce the number of http connections required to download
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5092
 * YUI files. You can also specify an external, custom combo service to host
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5093
 * your modules as well.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5094
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5095
        var Y = YUI();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5096
        var loader = new Y.Loader({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5097
            filter: 'debug',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5098
            base: '../../',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5099
            root: 'build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5100
            combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5101
            require: ['node', 'dd', 'console']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5102
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5103
        var out = loader.resolve(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5104
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5105
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5106
 * @class Loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5107
 * @param {Object} config an optional set of configuration options.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5108
 * @param {String} config.base The base dir which to fetch this module from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5109
 * @param {String} config.comboBase The Combo service base path. Ex: `http://yui.yahooapis.com/combo?`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5110
 * @param {String} config.root The root path to prepend to module names for the combo service. Ex: `2.5.2/build/`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5111
 * @param {String|Object} config.filter A filter to apply to result urls. <a href="#property_filter">See filter property</a>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5112
 * @param {Object} config.filters Per-component filter specification.  If specified for a given component, this overrides the filter config.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5113
 * @param {Boolean} config.combine Use a combo service to reduce the number of http connections required to load your dependencies
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5114
 * @param {Boolean} [config.async=true] Fetch files in async
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5115
 * @param {Array} config.ignore: A list of modules that should never be dynamically loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5116
 * @param {Array} config.force A list of modules that should always be loaded when required, even if already present on the page
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5117
 * @param {HTMLElement|String} config.insertBefore Node or id for a node that should be used as the insertion point for new nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5118
 * @param {Object} config.jsAttributes Object literal containing attributes to add to script nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5119
 * @param {Object} config.cssAttributes Object literal containing attributes to add to link nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5120
 * @param {Number} config.timeout The number of milliseconds before a timeout occurs when dynamically loading nodes.  If not set, there is no timeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5121
 * @param {Object} config.context Execution context for all callbacks
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5122
 * @param {Function} config.onSuccess Callback for the 'success' event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5123
 * @param {Function} config.onFailure Callback for the 'failure' event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5124
 * @param {Function} config.onCSS Callback for the 'CSSComplete' event.  When loading YUI components with CSS the CSS is loaded first, then the script.  This provides a moment you can tie into to improve the presentation of the page while the script is loading.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5125
 * @param {Function} config.onTimeout Callback for the 'timeout' event
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5126
 * @param {Function} config.onProgress Callback executed each time a script or css file is loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5127
 * @param {Object} config.modules A list of module definitions.  See <a href="#method_addModule">Loader.addModule</a> for the supported module metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5128
 * @param {Object} config.groups A list of group definitions.  Each group can contain specific definitions for `base`, `comboBase`, `combine`, and accepts a list of `modules`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5129
 * @param {String} config.2in3 The version of the YUI 2 in 3 wrapper to use.  The intrinsic support for YUI 2 modules in YUI 3 relies on versions of the YUI 2 components inside YUI 3 module wrappers.  These wrappers change over time to accomodate the issues that arise from running YUI 2 in a YUI 3 sandbox.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5130
 * @param {String} config.yui2 When using the 2in3 project, you can select the version of YUI 2 to use.  Valid values are `2.2.2`, `2.3.1`, `2.4.1`, `2.5.2`, `2.6.0`, `2.7.0`, `2.8.0`, `2.8.1` and `2.9.0` [default] -- plus all versions of YUI 2 going forward.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5131
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5132
Y.Loader = function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5134
    var self = this;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5135
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5136
    //Catch no config passed.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5137
    o = o || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5138
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5139
    modulekey = META.md5;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5140
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5141
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5142
     * Internal callback to handle multiple internal insert() calls
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5143
     * so that css is inserted prior to js
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5144
     * @property _internalCallback
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5145
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5146
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5147
    // self._internalCallback = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5148
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5149
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5150
     * Callback that will be executed when the loader is finished
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5151
     * with an insert
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5152
     * @method onSuccess
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5153
     * @type function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5154
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5155
    // self.onSuccess = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5156
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5157
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5158
     * Callback that will be executed if there is a failure
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5159
     * @method onFailure
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5160
     * @type function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5161
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5162
    // self.onFailure = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5163
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5164
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5165
     * Callback for the 'CSSComplete' event.  When loading YUI components
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5166
     * with CSS the CSS is loaded first, then the script.  This provides
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5167
     * a moment you can tie into to improve the presentation of the page
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5168
     * while the script is loading.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5169
     * @method onCSS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5170
     * @type function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5171
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5172
    // self.onCSS = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5173
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5174
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5175
     * Callback executed each time a script or css file is loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5176
     * @method onProgress
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5177
     * @type function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5178
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5179
    // self.onProgress = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5180
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5181
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5182
     * Callback that will be executed if a timeout occurs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5183
     * @method onTimeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5184
     * @type function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5185
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5186
    // self.onTimeout = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5187
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5188
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5189
     * The execution context for all callbacks
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5190
     * @property context
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5191
     * @default {YUI} the YUI instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5192
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5193
    self.context = Y;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5194
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5195
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5196
     * Data that is passed to all callbacks
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5197
     * @property data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5198
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5199
    // self.data = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5200
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5201
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5202
     * Node reference or id where new nodes should be inserted before
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5203
     * @property insertBefore
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5204
     * @type string|HTMLElement
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5205
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5206
    // self.insertBefore = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5207
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5208
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5209
     * The charset attribute for inserted nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5210
     * @property charset
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5211
     * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5212
     * @deprecated , use cssAttributes or jsAttributes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5213
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5214
    // self.charset = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5215
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5216
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5217
     * An object literal containing attributes to add to link nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5218
     * @property cssAttributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5219
     * @type object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5220
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5221
    // self.cssAttributes = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5222
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5223
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5224
     * An object literal containing attributes to add to script nodes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5225
     * @property jsAttributes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5226
     * @type object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5227
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5228
    // self.jsAttributes = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5229
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5230
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5231
     * The base directory.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5232
     * @property base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5233
     * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5234
     * @default http://yui.yahooapis.com/[YUI VERSION]/build/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5235
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5236
    self.base = Y.Env.meta.base + Y.Env.meta.root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5237
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5238
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5239
     * Base path for the combo service
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5240
     * @property comboBase
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5241
     * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5242
     * @default http://yui.yahooapis.com/combo?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5243
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5244
    self.comboBase = Y.Env.meta.comboBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5245
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5246
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5247
     * Base path for language packs.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5248
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5249
    // self.langBase = Y.Env.meta.langBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5250
    // self.lang = "";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5251
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5252
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5253
     * If configured, the loader will attempt to use the combo
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5254
     * service for YUI resources and configured external resources.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5255
     * @property combine
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5256
     * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5257
     * @default true if a base dir isn't in the config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5258
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5259
    self.combine = o.base &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5260
        (o.base.indexOf(self.comboBase.substr(0, 20)) > -1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5261
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5262
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5263
    * The default seperator to use between files in a combo URL
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5264
    * @property comboSep
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5265
    * @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5266
    * @default Ampersand
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5267
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5268
    self.comboSep = '&';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5269
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5270
     * Max url length for combo urls.  The default is 1024. This is the URL
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5271
     * limit for the Yahoo! hosted combo servers.  If consuming
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5272
     * a different combo service that has a different URL limit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5273
     * it is possible to override this default by supplying
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5274
     * the maxURLLength config option.  The config option will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5275
     * only take effect if lower than the default.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5276
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5277
     * @property maxURLLength
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5278
     * @type int
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5279
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5280
    self.maxURLLength = MAX_URL_LENGTH;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5281
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5282
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5283
     * Ignore modules registered on the YUI global
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5284
     * @property ignoreRegistered
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5285
     * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5286
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5287
    self.ignoreRegistered = o.ignoreRegistered;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5288
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5289
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5290
     * Root path to prepend to module path for the combo
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5291
     * service
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5292
     * @property root
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5293
     * @type string
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5294
     * @default [YUI VERSION]/build/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5295
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5296
    self.root = Y.Env.meta.root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5297
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5298
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5299
     * Timeout value in milliseconds.  If set, self value will be used by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5300
     * the get utility.  the timeout event will fire if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5301
     * a timeout occurs.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5302
     * @property timeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5303
     * @type int
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5304
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5305
    self.timeout = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5306
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5307
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5308
     * A list of modules that should not be loaded, even if
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5309
     * they turn up in the dependency tree
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5310
     * @property ignore
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5311
     * @type string[]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5312
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5313
    // self.ignore = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5314
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5315
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5316
     * A list of modules that should always be loaded, even
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5317
     * if they have already been inserted into the page.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5318
     * @property force
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5319
     * @type string[]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5320
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5321
    // self.force = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5322
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5323
    self.forceMap = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5324
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5325
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5326
     * Should we allow rollups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5327
     * @property allowRollup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5328
     * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5329
     * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5330
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5331
    self.allowRollup = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5332
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5333
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5334
     * A filter to apply to result urls.  This filter will modify the default
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5335
     * path for all modules.  The default path for the YUI library is the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5336
     * minified version of the files (e.g., event-min.js).  The filter property
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5337
     * can be a predefined filter or a custom filter.  The valid predefined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5338
     * filters are:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5339
     * <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5340
     *  <dt>DEBUG</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5341
     *  <dd>Selects the debug versions of the library (e.g., event-debug.js).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5342
     *      This option will automatically include the Logger widget</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5343
     *  <dt>RAW</dt>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5344
     *  <dd>Selects the non-minified version of the library (e.g., event.js).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5345
     *  </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5346
     * </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5347
     * You can also define a custom filter, which must be an object literal
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5348
     * containing a search expression and a replace string:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5349
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5350
     *      myFilter: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5351
     *          'searchExp': "-min\\.js",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5352
     *          'replaceStr': "-debug.js"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5353
     *      }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5354
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5355
     * @property filter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5356
     * @type string| {searchExp: string, replaceStr: string}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5357
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5358
    // self.filter = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5359
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5360
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5361
     * per-component filter specification.  If specified for a given
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5362
     * component, this overrides the filter config.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5363
     * @property filters
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5364
     * @type object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5365
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5366
    self.filters = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5367
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5368
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5369
     * The list of requested modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5370
     * @property required
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5371
     * @type {string: boolean}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5372
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5373
    self.required = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5374
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5375
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5376
     * If a module name is predefined when requested, it is checked againsts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5377
     * the patterns provided in this property.  If there is a match, the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5378
     * module is added with the default configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5379
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5380
     * At the moment only supporting module prefixes, but anticipate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5381
     * supporting at least regular expressions.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5382
     * @property patterns
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5383
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5384
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5385
    // self.patterns = Y.merge(Y.Env.meta.patterns);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5386
    self.patterns = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5387
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5388
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5389
     * The library metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5390
     * @property moduleInfo
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5391
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5392
    // self.moduleInfo = Y.merge(Y.Env.meta.moduleInfo);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5393
    self.moduleInfo = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5394
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5395
    self.groups = Y.merge(Y.Env.meta.groups);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5396
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5397
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5398
     * Provides the information used to skin the skinnable components.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5399
     * The following skin definition would result in 'skin1' and 'skin2'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5400
     * being loaded for calendar (if calendar was requested), and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5401
     * 'sam' for all other skinnable components:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5402
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5403
     *      skin: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5404
     *          // The default skin, which is automatically applied if not
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5405
     *          // overriden by a component-specific skin definition.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5406
     *          // Change this in to apply a different skin globally
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5407
     *          defaultSkin: 'sam',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5408
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5409
     *          // This is combined with the loader base property to get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5410
     *          // the default root directory for a skin. ex:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5411
     *          // http://yui.yahooapis.com/2.3.0/build/assets/skins/sam/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5412
     *          base: 'assets/skins/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5413
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5414
     *          // Any component-specific overrides can be specified here,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5415
     *          // making it possible to load different skins for different
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5416
     *          // components.  It is possible to load more than one skin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5417
     *          // for a given component as well.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5418
     *          overrides: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5419
     *              calendar: ['skin1', 'skin2']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5420
     *          }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5421
     *      }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5422
     * @property skin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5423
     * @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5424
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5425
    self.skin = Y.merge(Y.Env.meta.skin);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5426
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5427
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5428
     * Map of conditional modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5429
     * @since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5430
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5431
    self.conditions = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5432
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5433
    // map of modules with a hash of modules that meet the requirement
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5434
    // self.provides = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5435
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5436
    self.config = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5437
    self._internal = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5438
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5439
    self._populateCache();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5440
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5441
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5442
     * Set when beginning to compute the dependency tree.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5443
     * Composed of what YUI reports to be loaded combined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5444
     * with what has been loaded by any instance on the page
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5445
     * with the version number specified in the metadata.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5446
     * @property loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5447
     * @type {string: boolean}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5448
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5449
    self.loaded = GLOBAL_LOADED[VERSION];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5450
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5451
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5452
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5453
    * Should Loader fetch scripts in `async`, defaults to `true`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5454
    * @property async
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5455
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5456
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5457
    self.async = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5458
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5459
    self._inspectPage();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5460
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5461
    self._internal = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5462
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5463
    self._config(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5464
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5465
    self.forceMap = (self.force) ? Y.Array.hash(self.force) : {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5466
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5467
    self.testresults = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5468
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5469
    if (Y.config.tests) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5470
        self.testresults = Y.config.tests;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5471
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5472
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5473
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5474
     * List of rollup files found in the library metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5475
     * @property rollups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5476
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5477
    // self.rollups = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5478
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5479
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5480
     * Whether or not to load optional dependencies for
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5481
     * the requested modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5482
     * @property loadOptional
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5483
     * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5484
     * @default false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5485
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5486
    // self.loadOptional = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5487
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5488
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5489
     * All of the derived dependencies in sorted order, which
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5490
     * will be populated when either calculate() or insert()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5491
     * is called
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5492
     * @property sorted
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5493
     * @type string[]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5494
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5495
    self.sorted = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5496
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5497
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5498
     * A list of modules to attach to the YUI instance when complete.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5499
     * If not supplied, the sorted list of dependencies are applied.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5500
     * @property attaching
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5501
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5502
    // self.attaching = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5504
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5505
     * Flag to indicate the dependency tree needs to be recomputed
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5506
     * if insert is called again.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5507
     * @property dirty
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5508
     * @type boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5509
     * @default true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5510
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5511
    self.dirty = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5513
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5514
     * List of modules inserted by the utility
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5515
     * @property inserted
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5516
     * @type {string: boolean}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5517
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5518
    self.inserted = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5519
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5520
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5521
     * List of skipped modules during insert() because the module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5522
     * was not defined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5523
     * @property skipped
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5524
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5525
    self.skipped = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5526
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5527
    // Y.on('yui:load', self.loadNext, self);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5528
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5529
    self.tested = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5530
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5531
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5532
     * Cached sorted calculate results
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5533
     * @property results
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5534
     * @since 3.2.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5535
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5536
    //self.results = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5537
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5538
    if (self.ignoreRegistered) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5539
        //Clear inpage already processed modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5540
        self._resetModules();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5541
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5542
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5543
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5544
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5545
Y.Loader.prototype = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5546
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5547
    * Checks the cache for modules and conditions, if they do not exist
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5548
    * process the default metadata and populate the local moduleInfo hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5549
    * @method _populateCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5550
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5551
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5552
    _populateCache: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5553
        var self = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5554
            defaults = META.modules,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5555
            cache = GLOBAL_ENV._renderedMods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5556
            i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5557
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5558
        if (cache && !self.ignoreRegistered) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5559
            for (i in cache) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5560
                if (cache.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5561
                    self.moduleInfo[i] = Y.merge(cache[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5562
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5563
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5564
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5565
            cache = GLOBAL_ENV._conditions;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5566
            for (i in cache) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5567
                if (cache.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5568
                    self.conditions[i] = Y.merge(cache[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5569
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5570
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5571
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5572
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5573
            for (i in defaults) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5574
                if (defaults.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5575
                    self.addModule(defaults[i], i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5576
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5577
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5578
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5579
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5580
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5581
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5582
    * Reset modules in the module cache to a pre-processed state so additional
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5583
    * computations with a different skin or language will work as expected.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5584
    * @method _resetModules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5585
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5586
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5587
    _resetModules: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5588
        var self = this, i, o,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5589
            mod, name, details;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5590
        for (i in self.moduleInfo) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5591
            if (self.moduleInfo.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5592
                mod = self.moduleInfo[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5593
                name = mod.name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5594
                details  = (YUI.Env.mods[name] ? YUI.Env.mods[name].details : null);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5595
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5596
                if (details) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5597
                    self.moduleInfo[name]._reset = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5598
                    self.moduleInfo[name].requires = details.requires || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5599
                    self.moduleInfo[name].optional = details.optional || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5600
                    self.moduleInfo[name].supersedes = details.supercedes || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5601
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5603
                if (mod.defaults) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5604
                    for (o in mod.defaults) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5605
                        if (mod.defaults.hasOwnProperty(o)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5606
                            if (mod[o]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5607
                                mod[o] = mod.defaults[o];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5608
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5609
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5610
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5611
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5612
                delete mod.langCache;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5613
                delete mod.skinCache;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5614
                if (mod.skinnable) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5615
                    self._addSkin(self.skin.defaultSkin, mod.name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5616
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5617
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5618
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5619
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5620
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5621
    Regex that matches a CSS URL. Used to guess the file type when it's not
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5622
    specified.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5623
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5624
    @property REGEX_CSS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5625
    @type RegExp
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5626
    @final
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5627
    @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5628
    @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5629
    **/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5630
    REGEX_CSS: /\.css(?:[?;].*)?$/i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5631
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5632
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5633
    * Default filters for raw and debug
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5634
    * @property FILTER_DEFS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5635
    * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5636
    * @final
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5637
    * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5638
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5639
    FILTER_DEFS: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5640
        RAW: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5641
            'searchExp': '-min\\.js',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5642
            'replaceStr': '.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5643
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5644
        DEBUG: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5645
            'searchExp': '-min\\.js',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5646
            'replaceStr': '-debug.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5647
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5648
        COVERAGE: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5649
            'searchExp': '-min\\.js',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5650
            'replaceStr': '-coverage.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5651
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5652
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5653
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5654
    * Check the pages meta-data and cache the result.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5655
    * @method _inspectPage
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5656
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5657
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5658
    _inspectPage: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5659
        var self = this, v, m, req, mr, i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5660
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5661
        //Inspect the page for CSS only modules and mark them as loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5662
        for (i in self.moduleInfo) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5663
            if (self.moduleInfo.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5664
                v = self.moduleInfo[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5665
                if (v.type && v.type === CSS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5666
                    if (self.isCSSLoaded(v.name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5667
                        self.loaded[i] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5668
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5669
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5670
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5671
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5672
        for (i in ON_PAGE) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5673
            if (ON_PAGE.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5674
                v = ON_PAGE[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5675
                if (v.details) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5676
                    m = self.moduleInfo[v.name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5677
                    req = v.details.requires;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5678
                    mr = m && m.requires;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5679
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5680
                   if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5681
                       if (!m._inspected && req && mr.length !== req.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5682
                           // console.log('deleting ' + m.name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5683
                           delete m.expanded;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5684
                       }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5685
                   } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5686
                       m = self.addModule(v.details, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5687
                   }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5688
                   m._inspected = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5689
               }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5690
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5691
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5692
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5693
    /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5694
    * returns true if b is not loaded, and is required directly or by means of modules it supersedes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5695
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5696
    * @method _requires
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5697
    * @param {String} mod1 The first module to compare
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5698
    * @param {String} mod2 The second module to compare
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5699
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5700
   _requires: function(mod1, mod2) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5702
        var i, rm, after_map, s,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5703
            info = this.moduleInfo,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5704
            m = info[mod1],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5705
            other = info[mod2];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5706
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5707
        if (!m || !other) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5708
            return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5709
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5710
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5711
        rm = m.expanded_map;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5712
        after_map = m.after_map;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5713
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5714
        // check if this module should be sorted after the other
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5715
        // do this first to short circut circular deps
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5716
        if (after_map && (mod2 in after_map)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5717
            return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5718
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5719
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5720
        after_map = other.after_map;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5721
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5722
        // and vis-versa
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5723
        if (after_map && (mod1 in after_map)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5724
            return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5725
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5726
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5727
        // check if this module requires one the other supersedes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5728
        s = info[mod2] && info[mod2].supersedes;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5729
        if (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5730
            for (i = 0; i < s.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5731
                if (this._requires(mod1, s[i])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5732
                    return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5733
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5734
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5735
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5736
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5737
        s = info[mod1] && info[mod1].supersedes;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5738
        if (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5739
            for (i = 0; i < s.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5740
                if (this._requires(mod2, s[i])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5741
                    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5742
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5743
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5744
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5745
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5746
        // check if this module requires the other directly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5747
        // if (r && yArray.indexOf(r, mod2) > -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5748
        if (rm && (mod2 in rm)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5749
            return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5750
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5751
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5752
        // external css files should be sorted below yui css
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5753
        if (m.ext && m.type === CSS && !other.ext && other.type === CSS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5754
            return true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5755
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5756
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5757
        return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5758
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5759
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5760
    * Apply a new config to the Loader instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5761
    * @method _config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5762
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5763
    * @param {Object} o The new configuration
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5764
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5765
    _config: function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5766
        var i, j, val, a, f, group, groupName, self = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5767
            mods = [], mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5768
        // apply config values
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5769
        if (o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5770
            for (i in o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5771
                if (o.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5772
                    val = o[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5773
                    //TODO This should be a case
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5774
                    if (i === 'require') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5775
                        self.require(val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5776
                    } else if (i === 'skin') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5777
                        //If the config.skin is a string, format to the expected object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5778
                        if (typeof val === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5779
                            self.skin.defaultSkin = o.skin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5780
                            val = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5781
                                defaultSkin: val
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5782
                            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5783
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5784
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5785
                        Y.mix(self.skin, val, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5786
                    } else if (i === 'groups') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5787
                        for (j in val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5788
                            if (val.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5789
                                groupName = j;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5790
                                group = val[j];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5791
                                self.addGroup(group, groupName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5792
                                if (group.aliases) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5793
                                    for (a in group.aliases) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5794
                                        if (group.aliases.hasOwnProperty(a)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5795
                                            self.addAlias(group.aliases[a], a);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5796
                                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5797
                                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5798
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5799
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5800
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5801
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5802
                    } else if (i === 'modules') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5803
                        // add a hash of module definitions
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5804
                        for (j in val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5805
                            if (val.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5806
                                self.addModule(val[j], j);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5807
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5808
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5809
                    } else if (i === 'aliases') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5810
                        for (j in val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5811
                            if (val.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5812
                                self.addAlias(val[j], j);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5813
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5814
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5815
                    } else if (i === 'gallery') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5816
                        if (this.groups.gallery.update) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5817
                            this.groups.gallery.update(val, o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5818
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5819
                    } else if (i === 'yui2' || i === '2in3') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5820
                        if (this.groups.yui2.update) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5821
                            this.groups.yui2.update(o['2in3'], o.yui2, o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5822
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5823
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5824
                        self[i] = val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5825
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5826
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5827
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5828
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5829
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5830
        // fix filter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5831
        f = self.filter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5832
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5833
        if (L.isString(f)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5834
            f = f.toUpperCase();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5835
            self.filterName = f;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5836
            self.filter = self.FILTER_DEFS[f];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5837
            if (f === 'DEBUG') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5838
                self.require('yui-log', 'dump');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5839
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5840
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5841
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5842
        if (self.filterName && self.coverage) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5843
            if (self.filterName === 'COVERAGE' && L.isArray(self.coverage) && self.coverage.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5844
                for (i = 0; i < self.coverage.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5845
                    mod = self.coverage[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5846
                    if (self.moduleInfo[mod] && self.moduleInfo[mod].use) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5847
                        mods = [].concat(mods, self.moduleInfo[mod].use);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5848
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5849
                        mods.push(mod);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5850
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5851
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5852
                self.filters = self.filters || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5853
                Y.Array.each(mods, function(mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5854
                    self.filters[mod] = self.FILTER_DEFS.COVERAGE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5855
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5856
                self.filterName = 'RAW';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5857
                self.filter = self.FILTER_DEFS[self.filterName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5858
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5859
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5860
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5861
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5862
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5863
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5864
     * Returns the skin module name for the specified skin name.  If a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5865
     * module name is supplied, the returned skin module name is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5866
     * specific to the module passed in.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5867
     * @method formatSkin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5868
     * @param {string} skin the name of the skin.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5869
     * @param {string} mod optional: the name of a module to skin.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5870
     * @return {string} the full skin module name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5871
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5872
    formatSkin: function(skin, mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5873
        var s = SKIN_PREFIX + skin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5874
        if (mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5875
            s = s + '-' + mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5876
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5877
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5878
        return s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5879
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5880
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5881
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5882
     * Adds the skin def to the module info
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5883
     * @method _addSkin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5884
     * @param {string} skin the name of the skin.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5885
     * @param {string} mod the name of the module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5886
     * @param {string} parent parent module if this is a skin of a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5887
     * submodule or plugin.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5888
     * @return {string} the module name for the skin.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5889
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5890
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5891
    _addSkin: function(skin, mod, parent) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5892
        var mdef, pkg, name, nmod,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5893
            info = this.moduleInfo,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5894
            sinf = this.skin,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5895
            ext = info[mod] && info[mod].ext;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5896
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5897
        // Add a module definition for the module-specific skin css
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5898
        if (mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5899
            name = this.formatSkin(skin, mod);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5900
            if (!info[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5901
                mdef = info[mod];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5902
                pkg = mdef.pkg || mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5903
                nmod = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5904
                    skin: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5905
                    name: name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5906
                    group: mdef.group,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5907
                    type: 'css',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5908
                    after: sinf.after,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5909
                    path: (parent || pkg) + '/' + sinf.base + skin +
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5910
                          '/' + mod + '.css',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5911
                    ext: ext
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5912
                };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5913
                if (mdef.base) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5914
                    nmod.base = mdef.base;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5915
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5916
                if (mdef.configFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5917
                    nmod.configFn = mdef.configFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5918
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5919
                this.addModule(nmod, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5920
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5921
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5922
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5923
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5924
        return name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5925
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5926
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5927
    * Adds an alias module to the system
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5928
    * @method addAlias
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5929
    * @param {Array} use An array of modules that makes up this alias
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5930
    * @param {String} name The name of the alias
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5931
    * @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5932
    *       var loader = new Y.Loader({});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5933
    *       loader.addAlias([ 'node', 'yql' ], 'davglass');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5934
    *       loader.require(['davglass']);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5935
    *       var out = loader.resolve(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5936
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5937
    *       //out.js will contain Node and YQL modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5938
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5939
    addAlias: function(use, name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5940
        YUI.Env.aliases[name] = use;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5941
        this.addModule({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5942
            name: name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5943
            use: use
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5944
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5945
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5946
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5947
     * Add a new module group
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5948
     * @method addGroup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5949
     * @param {Object} config An object containing the group configuration data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5950
     * @param {String} config.name required, the group name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5951
     * @param {String} config.base The base directory for this module group
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5952
     * @param {String} config.root The root path to add to each combo resource path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5953
     * @param {Boolean} config.combine Should the request be combined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5954
     * @param {String} config.comboBase Combo service base path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5955
     * @param {Object} config.modules The group of modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5956
     * @param {String} name the group name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5957
     * @example
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5958
     *      var loader = new Y.Loader({});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5959
     *      loader.addGroup({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5960
     *          name: 'davglass',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5961
     *          combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5962
     *          comboBase: '/combo?',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5963
     *          root: '',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5964
     *          modules: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5965
     *              //Module List here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5966
     *          }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5967
     *      }, 'davglass');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5968
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5969
    addGroup: function(o, name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5970
        var mods = o.modules,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5971
            self = this, i, v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5972
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5973
        name = name || o.name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5974
        o.name = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5975
        self.groups[name] = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5976
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5977
        if (o.patterns) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5978
            for (i in o.patterns) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5979
                if (o.patterns.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5980
                    o.patterns[i].group = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5981
                    self.patterns[i] = o.patterns[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5982
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5983
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5984
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5985
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5986
        if (mods) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5987
            for (i in mods) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5988
                if (mods.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5989
                    v = mods[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5990
                    if (typeof v === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5991
                        v = { name: i, fullpath: v };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5992
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5993
                    v.group = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5994
                    self.addModule(v, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5995
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5996
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5997
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5998
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  5999
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6000
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6001
     * Add a new module to the component metadata.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6002
     * @method addModule
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6003
     * @param {Object} config An object containing the module data.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6004
     * @param {String} config.name Required, the component name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6005
     * @param {String} config.type Required, the component type (js or css)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6006
     * @param {String} config.path Required, the path to the script from `base`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6007
     * @param {Array} config.requires Array of modules required by this component
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6008
     * @param {Array} [config.optional] Array of optional modules for this component
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6009
     * @param {Array} [config.supersedes] Array of the modules this component replaces
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6010
     * @param {Array} [config.after] Array of modules the components which, if present, should be sorted above this one
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6011
     * @param {Object} [config.after_map] Faster alternative to 'after' -- supply a hash instead of an array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6012
     * @param {Number} [config.rollup] The number of superseded modules required for automatic rollup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6013
     * @param {String} [config.fullpath] If `fullpath` is specified, this is used instead of the configured `base + path`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6014
     * @param {Boolean} [config.skinnable] Flag to determine if skin assets should automatically be pulled in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6015
     * @param {Object} [config.submodules] Hash of submodules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6016
     * @param {String} [config.group] The group the module belongs to -- this is set automatically when it is added as part of a group configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6017
     * @param {Array} [config.lang] Array of BCP 47 language tags of languages for which this module has localized resource bundles, e.g., `["en-GB", "zh-Hans-CN"]`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6018
     * @param {Object} [config.condition] Specifies that the module should be loaded automatically if a condition is met. This is an object with up to four fields:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6019
     * @param {String} [config.condition.trigger] The name of a module that can trigger the auto-load
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6020
     * @param {Function} [config.condition.test] A function that returns true when the module is to be loaded.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6021
     * @param {String} [config.condition.ua] The UA name of <a href="UA.html">Y.UA</a> object that returns true when the module is to be loaded. e.g., `"ie"`, `"nodejs"`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6022
     * @param {String} [config.condition.when] Specifies the load order of the conditional module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6023
     *  with regard to the position of the trigger module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6024
     *  This should be one of three values: `before`, `after`, or `instead`.  The default is `after`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6025
     * @param {Object} [config.testresults] A hash of test results from `Y.Features.all()`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6026
     * @param {Function} [config.configFn] A function to exectute when configuring this module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6027
     * @param {Object} config.configFn.mod The module config, modifying this object will modify it's config. Returning false will delete the module's config.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6028
     * @param {String} [name] The module name, required if not in the module data.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6029
     * @return {Object} the module definition or null if the object passed in did not provide all required attributes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6030
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6031
    addModule: function(o, name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6032
        name = name || o.name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6033
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6034
        if (typeof o === 'string') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6035
            o = { name: name, fullpath: o };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6036
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6037
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6038
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6039
        var subs, i, l, t, sup, s, smod, plugins, plug,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6040
            j, langs, packName, supName, flatSup, flatLang, lang, ret,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6041
            overrides, skinname, when, g, p,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6042
            conditions = this.conditions, trigger;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6043
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6044
        //Only merge this data if the temp flag is set
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6045
        //from an earlier pass from a pattern or else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6046
        //an override module (YUI_config) can not be used to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6047
        //replace a default module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6048
        if (this.moduleInfo[name] && this.moduleInfo[name].temp) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6049
            //This catches temp modules loaded via a pattern
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6050
            // The module will be added twice, once from the pattern and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6051
            // Once from the actual add call, this ensures that properties
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6052
            // that were added to the module the first time around (group: gallery)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6053
            // are also added the second time around too.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6054
            o = Y.merge(this.moduleInfo[name], o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6055
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6056
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6057
        o.name = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6058
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6059
        if (!o || !o.name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6060
            return null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6061
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6062
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6063
        if (!o.type) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6064
            //Always assume it's javascript unless the CSS pattern is matched.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6065
            o.type = JS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6066
            p = o.path || o.fullpath;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6067
            if (p && this.REGEX_CSS.test(p)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6068
                o.type = CSS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6069
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6070
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6071
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6072
        if (!o.path && !o.fullpath) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6073
            o.path = _path(name, name, o.type);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6074
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6075
        o.supersedes = o.supersedes || o.use;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6076
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6077
        o.ext = ('ext' in o) ? o.ext : (this._internal) ? false : true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6078
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6079
        // Handle submodule logic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6080
        subs = o.submodules;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6081
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6082
        this.moduleInfo[name] = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6083
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6084
        o.requires = o.requires || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6085
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6086
        /*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6087
        Only allowing the cascade of requires information, since
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6088
        optional and supersedes are far more fine grained than
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6089
        a blanket requires is.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6090
        */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6091
        if (this.requires) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6092
            for (i = 0; i < this.requires.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6093
                o.requires.push(this.requires[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6094
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6095
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6096
        if (o.group && this.groups && this.groups[o.group]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6097
            g = this.groups[o.group];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6098
            if (g.requires) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6099
                for (i = 0; i < g.requires.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6100
                    o.requires.push(g.requires[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6101
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6102
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6103
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6104
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6105
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6106
        if (!o.defaults) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6107
            o.defaults = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6108
                requires: o.requires ? [].concat(o.requires) : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6109
                supersedes: o.supersedes ? [].concat(o.supersedes) : null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6110
                optional: o.optional ? [].concat(o.optional) : null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6111
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6112
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6113
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6114
        if (o.skinnable && o.ext && o.temp) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6115
            skinname = this._addSkin(this.skin.defaultSkin, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6116
            o.requires.unshift(skinname);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6117
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6118
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6119
        if (o.requires.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6120
            o.requires = this.filterRequires(o.requires) || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6121
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6122
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6123
        if (!o.langPack && o.lang) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6124
            langs = yArray(o.lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6125
            for (j = 0; j < langs.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6126
                lang = langs[j];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6127
                packName = this.getLangPackName(lang, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6128
                smod = this.moduleInfo[packName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6129
                if (!smod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6130
                    smod = this._addLangPack(lang, o, packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6131
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6132
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6133
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6134
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6135
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6136
        if (subs) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6137
            sup = o.supersedes || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6138
            l = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6139
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6140
            for (i in subs) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6141
                if (subs.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6142
                    s = subs[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6143
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6144
                    s.path = s.path || _path(name, i, o.type);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6145
                    s.pkg = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6146
                    s.group = o.group;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6147
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6148
                    if (s.supersedes) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6149
                        sup = sup.concat(s.supersedes);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6150
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6151
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6152
                    smod = this.addModule(s, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6153
                    sup.push(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6154
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6155
                    if (smod.skinnable) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6156
                        o.skinnable = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6157
                        overrides = this.skin.overrides;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6158
                        if (overrides && overrides[i]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6159
                            for (j = 0; j < overrides[i].length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6160
                                skinname = this._addSkin(overrides[i][j],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6161
                                         i, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6162
                                sup.push(skinname);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6163
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6164
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6165
                        skinname = this._addSkin(this.skin.defaultSkin,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6166
                                        i, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6167
                        sup.push(skinname);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6168
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6169
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6170
                    // looks like we are expected to work out the metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6171
                    // for the parent module language packs from what is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6172
                    // specified in the child modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6173
                    if (s.lang && s.lang.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6174
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6175
                        langs = yArray(s.lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6176
                        for (j = 0; j < langs.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6177
                            lang = langs[j];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6178
                            packName = this.getLangPackName(lang, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6179
                            supName = this.getLangPackName(lang, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6180
                            smod = this.moduleInfo[packName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6181
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6182
                            if (!smod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6183
                                smod = this._addLangPack(lang, o, packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6184
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6185
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6186
                            flatSup = flatSup || yArray.hash(smod.supersedes);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6187
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6188
                            if (!(supName in flatSup)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6189
                                smod.supersedes.push(supName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6190
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6192
                            o.lang = o.lang || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6193
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6194
                            flatLang = flatLang || yArray.hash(o.lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6195
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6196
                            if (!(lang in flatLang)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6197
                                o.lang.push(lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6198
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6199
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6200
// Add rollup file, need to add to supersedes list too
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6201
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6202
                            // default packages
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6203
                            packName = this.getLangPackName(ROOT_LANG, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6204
                            supName = this.getLangPackName(ROOT_LANG, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6205
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6206
                            smod = this.moduleInfo[packName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6207
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6208
                            if (!smod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6209
                                smod = this._addLangPack(lang, o, packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6210
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6211
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6212
                            if (!(supName in flatSup)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6213
                                smod.supersedes.push(supName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6214
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6215
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6216
// Add rollup file, need to add to supersedes list too
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6217
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6218
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6219
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6220
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6221
                    l++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6222
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6223
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6224
            //o.supersedes = YObject.keys(yArray.hash(sup));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6225
            o.supersedes = yArray.dedupe(sup);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6226
            if (this.allowRollup) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6227
                o.rollup = (l < 4) ? l : Math.min(l - 1, 4);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6228
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6229
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6230
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6231
        plugins = o.plugins;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6232
        if (plugins) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6233
            for (i in plugins) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6234
                if (plugins.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6235
                    plug = plugins[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6236
                    plug.pkg = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6237
                    plug.path = plug.path || _path(name, i, o.type);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6238
                    plug.requires = plug.requires || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6239
                    plug.group = o.group;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6240
                    this.addModule(plug, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6241
                    if (o.skinnable) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6242
                        this._addSkin(this.skin.defaultSkin, i, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6243
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6244
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6245
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6246
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6247
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6248
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6249
        if (o.condition) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6250
            t = o.condition.trigger;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6251
            if (YUI.Env.aliases[t]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6252
                t = YUI.Env.aliases[t];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6253
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6254
            if (!Y.Lang.isArray(t)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6255
                t = [t];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6256
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6257
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6258
            for (i = 0; i < t.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6259
                trigger = t[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6260
                when = o.condition.when;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6261
                conditions[trigger] = conditions[trigger] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6262
                conditions[trigger][name] = o.condition;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6263
                // the 'when' attribute can be 'before', 'after', or 'instead'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6264
                // the default is after.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6265
                if (when && when !== 'after') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6266
                    if (when === 'instead') { // replace the trigger
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6267
                        o.supersedes = o.supersedes || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6268
                        o.supersedes.push(trigger);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6269
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6270
                    // before the trigger
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6271
                        // the trigger requires the conditional mod,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6272
                        // so it should appear before the conditional
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6273
                        // mod if we do not intersede.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6274
                } else { // after the trigger
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6275
                    o.after = o.after || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6276
                    o.after.push(trigger);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6277
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6278
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6279
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6280
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6281
        if (o.supersedes) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6282
            o.supersedes = this.filterRequires(o.supersedes);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6283
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6284
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6285
        if (o.after) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6286
            o.after = this.filterRequires(o.after);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6287
            o.after_map = yArray.hash(o.after);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6288
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6289
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6290
        // this.dirty = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6291
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6292
        if (o.configFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6293
            ret = o.configFn(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6294
            if (ret === false) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6295
                delete this.moduleInfo[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6296
                delete GLOBAL_ENV._renderedMods[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6297
                o = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6298
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6299
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6300
        //Add to global cache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6301
        if (o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6302
            if (!GLOBAL_ENV._renderedMods) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6303
                GLOBAL_ENV._renderedMods = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6304
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6305
            GLOBAL_ENV._renderedMods[name] = Y.mix(GLOBAL_ENV._renderedMods[name] || {}, o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6306
            GLOBAL_ENV._conditions = conditions;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6307
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6308
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6309
        return o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6310
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6311
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6312
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6313
     * Add a requirement for one or more module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6314
     * @method require
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6315
     * @param {string[] | string*} what the modules to load.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6316
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6317
    require: function(what) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6318
        var a = (typeof what === 'string') ? yArray(arguments) : what;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6319
        this.dirty = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6320
        this.required = Y.merge(this.required, yArray.hash(this.filterRequires(a)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6321
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6322
        this._explodeRollups();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6323
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6324
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6325
    * Grab all the items that were asked for, check to see if the Loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6326
    * meta-data contains a "use" array. If it doesm remove the asked item and replace it with
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6327
    * the content of the "use".
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6328
    * This will make asking for: "dd"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6329
    * Actually ask for: "dd-ddm-base,dd-ddm,dd-ddm-drop,dd-drag,dd-proxy,dd-constrain,dd-drop,dd-scroll,dd-drop-plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6330
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6331
    * @method _explodeRollups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6332
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6333
    _explodeRollups: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6334
        var self = this, m, m2, i, a, v, len, len2,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6335
        r = self.required;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6336
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6337
        if (!self.allowRollup) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6338
            for (i in r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6339
                if (r.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6340
                    m = self.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6341
                    if (m && m.use) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6342
                        len = m.use.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6343
                        for (a = 0; a < len; a++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6344
                            m2 = self.getModule(m.use[a]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6345
                            if (m2 && m2.use) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6346
                                len2 = m2.use.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6347
                                for (v = 0; v < len2; v++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6348
                                    r[m2.use[v]] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6349
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6350
                            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6351
                                r[m.use[a]] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6352
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6353
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6354
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6355
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6356
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6357
            self.required = r;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6358
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6359
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6360
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6361
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6362
    * Explodes the required array to remove aliases and replace them with real modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6363
    * @method filterRequires
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6364
    * @param {Array} r The original requires array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6365
    * @return {Array} The new array of exploded requirements
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6366
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6367
    filterRequires: function(r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6368
        if (r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6369
            if (!Y.Lang.isArray(r)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6370
                r = [r];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6371
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6372
            r = Y.Array(r);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6373
            var c = [], i, mod, o, m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6374
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6375
            for (i = 0; i < r.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6376
                mod = this.getModule(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6377
                if (mod && mod.use) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6378
                    for (o = 0; o < mod.use.length; o++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6379
                        //Must walk the other modules in case a module is a rollup of rollups (datatype)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6380
                        m = this.getModule(mod.use[o]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6381
                        if (m && m.use && (m.name !== mod.name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6382
                            c = Y.Array.dedupe([].concat(c, this.filterRequires(m.use)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6383
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6384
                            c.push(mod.use[o]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6385
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6386
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6387
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6388
                    c.push(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6389
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6390
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6391
            r = c;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6392
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6393
        return r;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6394
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6395
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6396
     * Returns an object containing properties for all modules required
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6397
     * in order to load the requested module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6398
     * @method getRequires
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6399
     * @param {object}  mod The module definition from moduleInfo.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6400
     * @return {array} the expanded requirement list.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6401
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6402
    getRequires: function(mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6403
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6404
        if (!mod) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6405
            //console.log('returning no reqs for ' + mod.name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6406
            return NO_REQUIREMENTS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6407
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6408
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6409
        if (mod._parsed) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6410
            //console.log('returning requires for ' + mod.name, mod.requires);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6411
            return mod.expanded || NO_REQUIREMENTS;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6412
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6413
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6414
        //TODO add modue cache here out of scope..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6415
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6416
        var i, m, j, add, packName, lang, testresults = this.testresults,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6417
            name = mod.name, cond,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6418
            adddef = ON_PAGE[name] && ON_PAGE[name].details,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6419
            d, go, def,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6420
            r, old_mod,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6421
            o, skinmod, skindef, skinpar, skinname,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6422
            intl = mod.lang || mod.intl,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6423
            info = this.moduleInfo,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6424
            ftests = Y.Features && Y.Features.tests.load,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6425
            hash, reparse;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6426
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6427
        // console.log(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6428
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6429
        // pattern match leaves module stub that needs to be filled out
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6430
        if (mod.temp && adddef) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6431
            old_mod = mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6432
            mod = this.addModule(adddef, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6433
            mod.group = old_mod.group;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6434
            mod.pkg = old_mod.pkg;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6435
            delete mod.expanded;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6436
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6437
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6438
        // console.log('cache: ' + mod.langCache + ' == ' + this.lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6439
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6440
        //If a skin or a lang is different, reparse..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6441
        reparse = !((!this.lang || mod.langCache === this.lang) && (mod.skinCache === this.skin.defaultSkin));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6442
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6443
        if (mod.expanded && !reparse) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6444
            return mod.expanded;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6445
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6446
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6447
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6448
        d = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6449
        hash = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6450
        r = this.filterRequires(mod.requires);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6451
        if (mod.lang) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6452
            //If a module has a lang attribute, auto add the intl requirement.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6453
            d.unshift('intl');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6454
            r.unshift('intl');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6455
            intl = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6456
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6457
        o = this.filterRequires(mod.optional);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6458
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6459
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6460
        mod._parsed = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6461
        mod.langCache = this.lang;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6462
        mod.skinCache = this.skin.defaultSkin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6463
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6464
        for (i = 0; i < r.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6465
            if (!hash[r[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6466
                d.push(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6467
                hash[r[i]] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6468
                m = this.getModule(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6469
                if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6470
                    add = this.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6471
                    intl = intl || (m.expanded_map &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6472
                        (INTL in m.expanded_map));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6473
                    for (j = 0; j < add.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6474
                        d.push(add[j]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6475
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6476
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6477
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6478
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6479
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6480
        // get the requirements from superseded modules, if any
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6481
        r = this.filterRequires(mod.supersedes);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6482
        if (r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6483
            for (i = 0; i < r.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6484
                if (!hash[r[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6485
                    // if this module has submodules, the requirements list is
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6486
                    // expanded to include the submodules.  This is so we can
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6487
                    // prevent dups when a submodule is already loaded and the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6488
                    // parent is requested.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6489
                    if (mod.submodules) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6490
                        d.push(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6491
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6492
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6493
                    hash[r[i]] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6494
                    m = this.getModule(r[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6495
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6496
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6497
                        add = this.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6498
                        intl = intl || (m.expanded_map &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6499
                            (INTL in m.expanded_map));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6500
                        for (j = 0; j < add.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6501
                            d.push(add[j]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6502
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6503
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6504
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6505
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6506
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6507
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6508
        if (o && this.loadOptional) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6509
            for (i = 0; i < o.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6510
                if (!hash[o[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6511
                    d.push(o[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6512
                    hash[o[i]] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6513
                    m = info[o[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6514
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6515
                        add = this.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6516
                        intl = intl || (m.expanded_map &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6517
                            (INTL in m.expanded_map));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6518
                        for (j = 0; j < add.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6519
                            d.push(add[j]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6520
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6521
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6522
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6523
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6524
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6525
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6526
        cond = this.conditions[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6527
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6528
        if (cond) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6529
            //Set the module to not parsed since we have conditionals and this could change the dependency tree.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6530
            mod._parsed = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6531
            if (testresults && ftests) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6532
                oeach(testresults, function(result, id) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6533
                    var condmod = ftests[id].name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6534
                    if (!hash[condmod] && ftests[id].trigger === name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6535
                        if (result && ftests[id]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6536
                            hash[condmod] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6537
                            d.push(condmod);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6538
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6539
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6540
                });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6541
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6542
                for (i in cond) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6543
                    if (cond.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6544
                        if (!hash[i]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6545
                            def = cond[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6546
                            //first see if they've specfied a ua check
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6547
                            //then see if they've got a test fn & if it returns true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6548
                            //otherwise just having a condition block is enough
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6549
                            go = def && ((!def.ua && !def.test) || (def.ua && Y.UA[def.ua]) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6550
                                        (def.test && def.test(Y, r)));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6551
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6552
                            if (go) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6553
                                hash[i] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6554
                                d.push(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6555
                                m = this.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6556
                                if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6557
                                    add = this.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6558
                                    for (j = 0; j < add.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6559
                                        d.push(add[j]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6560
                                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6561
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6562
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6563
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6564
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6565
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6566
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6567
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6568
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6569
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6570
        // Create skin modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6571
        if (mod.skinnable) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6572
            skindef = this.skin.overrides;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6573
            for (i in YUI.Env.aliases) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6574
                if (YUI.Env.aliases.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6575
                    if (Y.Array.indexOf(YUI.Env.aliases[i], name) > -1) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6576
                        skinpar = i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6577
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6578
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6579
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6580
            if (skindef && (skindef[name] || (skinpar && skindef[skinpar]))) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6581
                skinname = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6582
                if (skindef[skinpar]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6583
                    skinname = skinpar;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6584
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6585
                for (i = 0; i < skindef[skinname].length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6586
                    skinmod = this._addSkin(skindef[skinname][i], name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6587
                    if (!this.isCSSLoaded(skinmod, this._boot)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6588
                        d.push(skinmod);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6589
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6590
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6591
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6592
                skinmod = this._addSkin(this.skin.defaultSkin, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6593
                if (!this.isCSSLoaded(skinmod, this._boot)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6594
                    d.push(skinmod);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6595
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6596
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6597
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6598
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6599
        mod._parsed = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6600
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6601
        if (intl) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6603
            if (mod.lang && !mod.langPack && Y.Intl) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6604
                lang = Y.Intl.lookupBestLang(this.lang || ROOT_LANG, mod.lang);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6605
                packName = this.getLangPackName(lang, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6606
                if (packName) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6607
                    d.unshift(packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6608
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6609
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6610
            d.unshift(INTL);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6611
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6612
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6613
        mod.expanded_map = yArray.hash(d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6614
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6615
        mod.expanded = YObject.keys(mod.expanded_map);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6616
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6617
        return mod.expanded;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6618
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6619
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6620
    * Check to see if named css module is already loaded on the page
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6621
    * @method isCSSLoaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6622
    * @param {String} name The name of the css file
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6623
    * @return Boolean
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6624
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6625
    isCSSLoaded: function(name, skip) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6626
        //TODO - Make this call a batching call with name being an array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6627
        if (!name || !YUI.Env.cssStampEl || (!skip && this.ignoreRegistered)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6628
            return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6629
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6630
        var el = YUI.Env.cssStampEl,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6631
            ret = false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6632
            mod = YUI.Env._cssLoaded[name],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6633
            style = el.currentStyle; //IE
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6634
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6635
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6636
        if (mod !== undefined) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6637
            return mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6638
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6639
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6640
        //Add the classname to the element
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6641
        el.className = name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6642
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6643
        if (!style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6644
            style = Y.config.doc.defaultView.getComputedStyle(el, null);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6645
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6646
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6647
        if (style && style.display === 'none') {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6648
            ret = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6649
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6650
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6651
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6652
        el.className = ''; //Reset the classname to ''
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6653
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6654
        YUI.Env._cssLoaded[name] = ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6655
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6656
        return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6657
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6658
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6659
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6660
     * Returns a hash of module names the supplied module satisfies.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6661
     * @method getProvides
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6662
     * @param {string} name The name of the module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6663
     * @return {object} what this module provides.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6664
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6665
    getProvides: function(name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6666
        var m = this.getModule(name), o, s;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6667
            // supmap = this.provides;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6668
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6669
        if (!m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6670
            return NOT_FOUND;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6671
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6672
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6673
        if (m && !m.provides) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6674
            o = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6675
            s = m.supersedes;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6676
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6677
            if (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6678
                yArray.each(s, function(v) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6679
                    Y.mix(o, this.getProvides(v));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6680
                }, this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6681
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6682
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6683
            o[name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6684
            m.provides = o;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6685
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6686
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6687
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6688
        return m.provides;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6689
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6690
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6691
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6692
     * Calculates the dependency tree, the result is stored in the sorted
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6693
     * property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6694
     * @method calculate
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6695
     * @param {object} o optional options object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6696
     * @param {string} type optional argument to prune modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6697
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6698
    calculate: function(o, type) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6699
        if (o || type || this.dirty) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6700
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6701
            if (o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6702
                this._config(o);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6703
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6704
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6705
            if (!this._init) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6706
                this._setup();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6707
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6708
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6709
            this._explode();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6710
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6711
            if (this.allowRollup) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6712
                this._rollup();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6713
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6714
                this._explodeRollups();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6715
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6716
            this._reduce();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6717
            this._sort();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6718
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6719
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6720
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6721
    * Creates a "psuedo" package for languages provided in the lang array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6722
    * @method _addLangPack
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6723
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6724
    * @param {String} lang The language to create
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6725
    * @param {Object} m The module definition to create the language pack around
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6726
    * @param {String} packName The name of the package (e.g: lang/datatype-date-en-US)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6727
    * @return {Object} The module definition
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6728
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6729
    _addLangPack: function(lang, m, packName) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6730
        var name = m.name,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6731
            packPath, conf,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6732
            existing = this.moduleInfo[packName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6733
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6734
        if (!existing) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6735
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6736
            packPath = _path((m.pkg || name), packName, JS, true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6737
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6738
            conf = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6739
                path: packPath,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6740
                intl: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6741
                langPack: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6742
                ext: m.ext,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6743
                group: m.group,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6744
                supersedes: []
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6745
            };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6746
            if (m.root) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6747
                conf.root = m.root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6748
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6749
            if (m.base) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6750
                conf.base = m.base;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6751
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6752
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6753
            if (m.configFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6754
                conf.configFn = m.configFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6755
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6756
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6757
            this.addModule(conf, packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6758
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6759
            if (lang) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6760
                Y.Env.lang = Y.Env.lang || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6761
                Y.Env.lang[lang] = Y.Env.lang[lang] || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6762
                Y.Env.lang[lang][name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6763
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6764
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6765
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6766
        return this.moduleInfo[packName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6767
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6768
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6769
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6770
     * Investigates the current YUI configuration on the page.  By default,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6771
     * modules already detected will not be loaded again unless a force
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6772
     * option is encountered.  Called by calculate()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6773
     * @method _setup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6774
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6775
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6776
    _setup: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6777
        var info = this.moduleInfo, name, i, j, m, l,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6778
            packName;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6779
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6780
        for (name in info) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6781
            if (info.hasOwnProperty(name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6782
                m = info[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6783
                if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6784
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6785
                    // remove dups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6786
                    //m.requires = YObject.keys(yArray.hash(m.requires));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6787
                    m.requires = yArray.dedupe(m.requires);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6788
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6789
                    // Create lang pack modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6790
                    //if (m.lang && m.lang.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6791
                    if (m.lang) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6792
                        // Setup root package if the module has lang defined,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6793
                        // it needs to provide a root language pack
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6794
                        packName = this.getLangPackName(ROOT_LANG, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6795
                        this._addLangPack(null, m, packName);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6796
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6797
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6798
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6799
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6800
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6801
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6802
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6803
        //l = Y.merge(this.inserted);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6804
        l = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6805
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6806
        // available modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6807
        if (!this.ignoreRegistered) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6808
            Y.mix(l, GLOBAL_ENV.mods);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6809
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6810
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6811
        // add the ignore list to the list of loaded packages
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6812
        if (this.ignore) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6813
            Y.mix(l, yArray.hash(this.ignore));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6814
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6815
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6816
        // expand the list to include superseded modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6817
        for (j in l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6818
            if (l.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6819
                Y.mix(l, this.getProvides(j));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6820
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6821
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6822
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6823
        // remove modules on the force list from the loaded list
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6824
        if (this.force) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6825
            for (i = 0; i < this.force.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6826
                if (this.force[i] in l) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6827
                    delete l[this.force[i]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6828
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6829
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6830
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6831
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6832
        Y.mix(this.loaded, l);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6833
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6834
        this._init = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6835
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6836
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6837
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6838
     * Builds a module name for a language pack
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6839
     * @method getLangPackName
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6840
     * @param {string} lang the language code.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6841
     * @param {string} mname the module to build it for.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6842
     * @return {string} the language pack module name.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6843
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6844
    getLangPackName: function(lang, mname) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6845
        return ('lang/' + mname + ((lang) ? '_' + lang : ''));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6846
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6847
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6848
     * Inspects the required modules list looking for additional
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6849
     * dependencies.  Expands the required list to include all
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6850
     * required modules.  Called by calculate()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6851
     * @method _explode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6852
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6853
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6854
    _explode: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6855
        //TODO Move done out of scope
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6856
        var r = this.required, m, reqs, done = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6857
            self = this, name, expound;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6858
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6859
        // the setup phase is over, all modules have been created
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6860
        self.dirty = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6861
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6862
        self._explodeRollups();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6863
        r = self.required;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6864
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6865
        for (name in r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6866
            if (r.hasOwnProperty(name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6867
                if (!done[name]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6868
                    done[name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6869
                    m = self.getModule(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6870
                    if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6871
                        expound = m.expound;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6872
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6873
                        if (expound) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6874
                            r[expound] = self.getModule(expound);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6875
                            reqs = self.getRequires(r[expound]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6876
                            Y.mix(r, yArray.hash(reqs));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6877
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6878
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6879
                        reqs = self.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6880
                        Y.mix(r, yArray.hash(reqs));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6881
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6882
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6883
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6884
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6885
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6886
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6887
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6888
    * The default method used to test a module against a pattern
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6889
    * @method _patternTest
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6890
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6891
    * @param {String} mname The module being tested
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6892
    * @param {String} pname The pattern to match
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6893
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6894
    _patternTest: function(mname, pname) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6895
        return (mname.indexOf(pname) > -1);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6896
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6897
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6898
    * Get's the loader meta data for the requested module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6899
    * @method getModule
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6900
    * @param {String} mname The module name to get
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6901
    * @return {Object} The module metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6902
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6903
    getModule: function(mname) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6904
        //TODO: Remove name check - it's a quick hack to fix pattern WIP
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6905
        if (!mname) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6906
            return null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6907
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6908
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6909
        var p, found, pname,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6910
            m = this.moduleInfo[mname],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6911
            patterns = this.patterns;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6912
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6913
        // check the patterns library to see if we should automatically add
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6914
        // the module with defaults
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6915
        if (!m || (m && m.ext)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6916
            for (pname in patterns) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6917
                if (patterns.hasOwnProperty(pname)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6918
                    p = patterns[pname];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6919
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6920
                    //There is no test method, create a default one that tests
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6921
                    // the pattern against the mod name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6922
                    if (!p.test) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6923
                        p.test = this._patternTest;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6924
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6925
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6926
                    if (p.test(mname, pname)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6927
                        // use the metadata supplied for the pattern
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6928
                        // as the module definition.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6929
                        found = p;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6930
                        break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6931
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6932
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6933
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6934
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6935
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6936
        if (!m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6937
            if (found) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6938
                if (p.action) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6939
                    p.action.call(this, mname, pname);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6940
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6941
                    // ext true or false?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6942
                    m = this.addModule(Y.merge(found), mname);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6943
                    if (found.configFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6944
                        m.configFn = found.configFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6945
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6946
                    m.temp = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6947
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6948
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6949
        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6950
            if (found && m && found.configFn && !m.configFn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6951
                m.configFn = found.configFn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6952
                m.configFn(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6953
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6954
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6955
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6956
        return m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6957
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6958
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6959
    // impl in rollup submodule
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6960
    _rollup: function() { },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6961
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6962
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6963
     * Remove superceded modules and loaded modules.  Called by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6964
     * calculate() after we have the mega list of all dependencies
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6965
     * @method _reduce
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6966
     * @return {object} the reduced dependency hash.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6967
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6968
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6969
    _reduce: function(r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6970
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6971
        r = r || this.required;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6972
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6973
        var i, j, s, m, type = this.loadType,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6974
        ignore = this.ignore ? yArray.hash(this.ignore) : false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6975
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6976
        for (i in r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6977
            if (r.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6978
                m = this.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6979
                // remove if already loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6980
                if (((this.loaded[i] || ON_PAGE[i]) &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6981
                        !this.forceMap[i] && !this.ignoreRegistered) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6982
                        (type && m && m.type !== type)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6983
                    delete r[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6984
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6985
                if (ignore && ignore[i]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6986
                    delete r[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6987
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6988
                // remove anything this module supersedes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6989
                s = m && m.supersedes;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6990
                if (s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6991
                    for (j = 0; j < s.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6992
                        if (s[j] in r) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6993
                            delete r[s[j]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6994
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6995
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6996
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6997
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6998
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  6999
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7000
        return r;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7001
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7002
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7003
    * Handles the queue when a module has been loaded for all cases
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7004
    * @method _finish
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7005
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7006
    * @param {String} msg The message from Loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7007
    * @param {Boolean} success A boolean denoting success or failure
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7008
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7009
    _finish: function(msg, success) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7010
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7011
        _queue.running = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7012
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7013
        var onEnd = this.onEnd;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7014
        if (onEnd) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7015
            onEnd.call(this.context, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7016
                msg: msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7017
                data: this.data,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7018
                success: success
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7019
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7020
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7021
        this._continue();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7022
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7023
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7024
    * The default Loader onSuccess handler, calls this.onSuccess with a payload
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7025
    * @method _onSuccess
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7026
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7027
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7028
    _onSuccess: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7029
        var self = this, skipped = Y.merge(self.skipped), fn,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7030
            failed = [], rreg = self.requireRegistration,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7031
            success, msg, i, mod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7032
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7033
        for (i in skipped) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7034
            if (skipped.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7035
                delete self.inserted[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7036
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7037
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7038
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7039
        self.skipped = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7040
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7041
        for (i in self.inserted) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7042
            if (self.inserted.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7043
                mod = self.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7044
                if (mod && rreg && mod.type === JS && !(i in YUI.Env.mods)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7045
                    failed.push(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7046
                } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7047
                    Y.mix(self.loaded, self.getProvides(i));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7048
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7049
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7050
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7051
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7052
        fn = self.onSuccess;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7053
        msg = (failed.length) ? 'notregistered' : 'success';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7054
        success = !(failed.length);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7055
        if (fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7056
            fn.call(self.context, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7057
                msg: msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7058
                data: self.data,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7059
                success: success,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7060
                failed: failed,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7061
                skipped: skipped
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7062
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7063
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7064
        self._finish(msg, success);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7065
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7066
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7067
    * The default Loader onProgress handler, calls this.onProgress with a payload
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7068
    * @method _onProgress
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7069
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7070
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7071
    _onProgress: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7072
        var self = this, i;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7073
        //set the internal cache to what just came in.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7074
        if (e.data && e.data.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7075
            for (i = 0; i < e.data.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7076
                e.data[i] = self.getModule(e.data[i].name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7077
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7078
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7079
        if (self.onProgress) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7080
            self.onProgress.call(self.context, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7081
                name: e.url,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7082
                data: e.data
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7083
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7084
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7085
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7086
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7087
    * The default Loader onFailure handler, calls this.onFailure with a payload
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7088
    * @method _onFailure
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7089
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7090
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7091
    _onFailure: function(o) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7092
        var f = this.onFailure, msg = [], i = 0, len = o.errors.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7093
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7094
        for (i; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7095
            msg.push(o.errors[i].error);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7096
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7097
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7098
        msg = msg.join(',');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7099
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7100
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7101
        if (f) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7102
            f.call(this.context, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7103
                msg: msg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7104
                data: this.data,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7105
                success: false
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7106
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7107
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7108
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7109
        this._finish(msg, false);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7110
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7111
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7112
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7113
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7114
    * The default Loader onTimeout handler, calls this.onTimeout with a payload
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7115
    * @method _onTimeout
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7116
    * @param {Get.Transaction} transaction The Transaction object from `Y.Get`
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7117
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7118
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7119
    _onTimeout: function(transaction) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7120
        var f = this.onTimeout;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7121
        if (f) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7122
            f.call(this.context, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7123
                msg: 'timeout',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7124
                data: this.data,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7125
                success: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7126
                transaction: transaction
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7127
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7128
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7129
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7130
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7131
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7132
     * Sorts the dependency tree.  The last step of calculate()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7133
     * @method _sort
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7134
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7135
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7136
    _sort: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7137
        var name, 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7138
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7139
            // Object containing module names.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7140
            required = this.required, 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7141
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7142
            // Keep track of whether we've visited a module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7143
            visited = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7144
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7145
        // Will contain modules names, in the correct order, 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7146
        // according to dependencies.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7147
        this.sorted = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7148
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7149
        for (name in required) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7150
            if (!visited[name] && required.hasOwnProperty(name)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7151
                this._visit(name, visited);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7152
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7153
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7154
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7155
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7156
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7157
     * Recursively visits the dependencies of the module name
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7158
     * passed in, and appends each module name to the `sorted` property.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7159
     * @param {String} name The name of a module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7160
     * @param {Object} visited Keeps track of whether a module was visited.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7161
     * @method _visit
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7162
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7163
     */ 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7164
    _visit: function (name, visited) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7165
        var required, moduleInfo, dependency, dependencies, i, l;     
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7166
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7167
        visited[name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7168
        required = this.required;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7169
        moduleInfo = this.moduleInfo[name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7170
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7171
        if (moduleInfo) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7172
            // Recurse on each dependency of this module, 
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7173
            // figuring out its dependencies, and so on.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7174
            dependencies = moduleInfo.requires;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7175
            for (i = 0, l = dependencies.length; i < l; ++i) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7176
                dependency = dependencies[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7177
                
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7178
                // Is this module name in the required list of modules,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7179
                // and have we not already visited it?
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7180
                if (required[dependency] && !visited[dependency]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7181
                    this._visit(dependency, visited);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7182
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7183
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7184
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7185
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7186
        this.sorted.push(name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7187
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7188
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7189
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7190
    * Handles the actual insertion of script/link tags
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7191
    * @method _insert
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7192
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7193
    * @param {Object} source The YUI instance the request came from
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7194
    * @param {Object} o The metadata to include
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7195
    * @param {String} type JS or CSS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7196
    * @param {Boolean} [skipcalc=false] Do a Loader.calculate on the meta
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7197
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7198
    _insert: function(source, o, type, skipcalc) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7199
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7200
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7201
        // restore the state at the time of the request
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7202
        if (source) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7203
            this._config(source);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7204
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7205
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7206
        // build the dependency list
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7207
        // don't include type so we can process CSS and script in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7208
        // one pass when the type is not specified.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7209
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7210
        var modules = this.resolve(!skipcalc),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7211
            self = this, comp = 0, actions = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7212
            mods = {}, deps, complete;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7213
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7214
        self._refetch = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7215
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7216
        if (type) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7217
            //Filter out the opposite type and reset the array so the checks later work
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7218
            modules[((type === JS) ? CSS : JS)] = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7219
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7220
        if (!self.fetchCSS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7221
            modules.css = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7222
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7223
        if (modules.js.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7224
            comp++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7225
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7226
        if (modules.css.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7227
            comp++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7228
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7229
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7230
        //console.log('Resolved Modules: ', modules);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7231
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7232
        complete = function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7233
            actions++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7234
            var errs = {}, i = 0, o = 0, u = '', fn,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7235
                modName, resMods;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7236
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7237
            if (d && d.errors) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7238
                for (i = 0; i < d.errors.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7239
                    if (d.errors[i].request) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7240
                        u = d.errors[i].request.url;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7241
                    } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7242
                        u = d.errors[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7243
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7244
                    errs[u] = u;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7245
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7246
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7247
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7248
            if (d && d.data && d.data.length && (d.type === 'success')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7249
                for (i = 0; i < d.data.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7250
                    self.inserted[d.data[i].name] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7251
                    //If the external module has a skin or a lang, reprocess it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7252
                    if (d.data[i].lang || d.data[i].skinnable) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7253
                        delete self.inserted[d.data[i].name];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7254
                        self._refetch.push(d.data[i].name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7255
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7256
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7257
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7258
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7259
            if (actions === comp) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7260
                self._loading = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7261
                if (self._refetch.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7262
                    //Get the deps for the new meta-data and reprocess
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7263
                    for (i = 0; i < self._refetch.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7264
                        deps = self.getRequires(self.getModule(self._refetch[i]));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7265
                        for (o = 0; o < deps.length; o++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7266
                            if (!self.inserted[deps[o]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7267
                                //We wouldn't be to this point without the module being here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7268
                                mods[deps[o]] = deps[o];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7269
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7270
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7271
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7272
                    mods = Y.Object.keys(mods);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7273
                    if (mods.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7274
                        self.require(mods);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7275
                        resMods = self.resolve(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7276
                        if (resMods.cssMods.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7277
                            for (i=0; i <  resMods.cssMods.length; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7278
                                modName = resMods.cssMods[i].name;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7279
                                delete YUI.Env._cssLoaded[modName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7280
                                if (self.isCSSLoaded(modName)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7281
                                    self.inserted[modName] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7282
                                    delete self.required[modName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7283
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7284
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7285
                            self.sorted = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7286
                            self._sort();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7287
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7288
                        d = null; //bail
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7289
                        self._insert(); //insert the new deps
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7290
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7291
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7292
                if (d && d.fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7293
                    fn = d.fn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7294
                    delete d.fn;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7295
                    fn.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7296
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7297
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7298
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7299
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7300
        this._loading = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7301
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7302
        if (!modules.js.length && !modules.css.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7303
            actions = -1;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7304
            complete({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7305
                fn: self._onSuccess
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7306
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7307
            return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7308
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7309
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7310
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7311
        if (modules.css.length) { //Load CSS first
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7312
            Y.Get.css(modules.css, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7313
                data: modules.cssMods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7314
                attributes: self.cssAttributes,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7315
                insertBefore: self.insertBefore,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7316
                charset: self.charset,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7317
                timeout: self.timeout,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7318
                context: self,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7319
                onProgress: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7320
                    self._onProgress.call(self, e);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7321
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7322
                onTimeout: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7323
                    self._onTimeout.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7324
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7325
                onSuccess: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7326
                    d.type = 'success';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7327
                    d.fn = self._onSuccess;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7328
                    complete.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7329
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7330
                onFailure: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7331
                    d.type = 'failure';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7332
                    d.fn = self._onFailure;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7333
                    complete.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7334
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7335
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7336
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7337
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7338
        if (modules.js.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7339
            Y.Get.js(modules.js, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7340
                data: modules.jsMods,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7341
                insertBefore: self.insertBefore,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7342
                attributes: self.jsAttributes,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7343
                charset: self.charset,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7344
                timeout: self.timeout,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7345
                autopurge: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7346
                context: self,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7347
                async: self.async,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7348
                onProgress: function(e) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7349
                    self._onProgress.call(self, e);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7350
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7351
                onTimeout: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7352
                    self._onTimeout.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7353
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7354
                onSuccess: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7355
                    d.type = 'success';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7356
                    d.fn = self._onSuccess;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7357
                    complete.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7358
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7359
                onFailure: function(d) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7360
                    d.type = 'failure';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7361
                    d.fn = self._onFailure;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7362
                    complete.call(self, d);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7363
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7364
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7365
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7366
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7367
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7368
    * Once a loader operation is completely finished, process any additional queued items.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7369
    * @method _continue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7370
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7371
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7372
    _continue: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7373
        if (!(_queue.running) && _queue.size() > 0) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7374
            _queue.running = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7375
            _queue.next()();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7376
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7377
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7378
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7379
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7380
     * inserts the requested modules and their dependencies.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7381
     * <code>type</code> can be "js" or "css".  Both script and
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7382
     * css are inserted if type is not provided.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7383
     * @method insert
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7384
     * @param {object} o optional options object.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7385
     * @param {string} type the type of dependency to insert.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7386
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7387
    insert: function(o, type, skipsort) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7388
        var self = this, copy = Y.merge(this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7389
        delete copy.require;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7390
        delete copy.dirty;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7391
        _queue.add(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7392
            self._insert(copy, o, type, skipsort);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7393
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7394
        this._continue();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7395
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7396
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7397
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7398
     * Executed every time a module is loaded, and if we are in a load
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7399
     * cycle, we attempt to load the next script.  Public so that it
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7400
     * is possible to call this if using a method other than
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7401
     * Y.register to determine when scripts are fully loaded
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7402
     * @method loadNext
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7403
     * @deprecated
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7404
     * @param {string} mname optional the name of the module that has
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7405
     * been loaded (which is usually why it is time to load the next
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7406
     * one).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7407
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7408
    loadNext: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7409
        return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7410
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7411
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7412
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7413
     * Apply filter defined for this instance to a url/path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7414
     * @method _filter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7415
     * @param {string} u the string to filter.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7416
     * @param {string} name the name of the module, if we are processing
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7417
     * a single module as opposed to a combined url.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7418
     * @return {string} the filtered string.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7419
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7420
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7421
    _filter: function(u, name, group) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7422
        var f = this.filter,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7423
            hasFilter = name && (name in this.filters),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7424
            modFilter = hasFilter && this.filters[name],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7425
            groupName = group || (this.moduleInfo[name] ? this.moduleInfo[name].group : null);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7426
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7427
        if (groupName && this.groups[groupName] && this.groups[groupName].filter) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7428
            modFilter = this.groups[groupName].filter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7429
            hasFilter = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7430
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7431
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7432
        if (u) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7433
            if (hasFilter) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7434
                f = (L.isString(modFilter)) ? this.FILTER_DEFS[modFilter.toUpperCase()] || null : modFilter;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7435
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7436
            if (f) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7437
                u = u.replace(new RegExp(f.searchExp, 'g'), f.replaceStr);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7438
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7439
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7440
        return u;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7441
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7442
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7443
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7444
     * Generates the full url for a module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7445
     * @method _url
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7446
     * @param {string} path the path fragment.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7447
     * @param {String} name The name of the module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7448
     * @param {String} [base] The base url to use. Defaults to self.base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7449
     * @return {string} the full url.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7450
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7451
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7452
    _url: function(path, name, base) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7453
        return this._filter((base || this.base || '') + path, name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7454
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7455
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7456
    * Returns an Object hash of file arrays built from `loader.sorted` or from an arbitrary list of sorted modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7457
    * @method resolve
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7458
    * @param {Boolean} [calc=false] Perform a loader.calculate() before anything else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7459
    * @param {Array} [s] An override for the loader.sorted array. Defaults to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7460
    * `loader.sorted`.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7461
    * @return {Object} Object hash (js and css) of two arrays of file lists
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7462
    * @example This method can be used as an off-line dep calculator
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7463
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7464
    *        var Y = YUI();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7465
    *        var loader = new Y.Loader({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7466
    *            filter: 'debug',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7467
    *            base: '../../',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7468
    *            root: 'build/',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7469
    *            combine: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7470
    *            require: ['node', 'dd', 'console']
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7471
    *        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7472
    *        var out = loader.resolve(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7473
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7474
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7475
    resolve: function(calc, s) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7476
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7477
        var len, i, m, url, group, groupName, j, frag,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7478
            comboSource, comboSources, mods, comboBase,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7479
            base, urls, u = [], tmpBase, baseLen, resCombos = {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7480
            self = this, comboSep, maxURLLength,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7481
            inserted = (self.ignoreRegistered) ? {} : self.inserted,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7482
            resolved = { js: [], jsMods: [], css: [], cssMods: [] },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7483
            type = self.loadType || 'js', addSingle;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7484
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7485
        if (self.skin.overrides || self.skin.defaultSkin !== DEFAULT_SKIN || self.ignoreRegistered) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7486
            self._resetModules();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7487
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7488
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7489
        if (calc) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7490
            self.calculate();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7491
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7492
        s = s || self.sorted;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7493
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7494
        addSingle = function(m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7495
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7496
            if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7497
                group = (m.group && self.groups[m.group]) || NOT_FOUND;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7498
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7499
                //Always assume it's async
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7500
                if (group.async === false) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7501
                    m.async = group.async;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7502
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7503
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7504
                url = (m.fullpath) ? self._filter(m.fullpath, s[i]) :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7505
                      self._url(m.path, s[i], group.base || m.base);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7506
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7507
                if (m.attributes || m.async === false) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7508
                    url = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7509
                        url: url,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7510
                        async: m.async
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7511
                    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7512
                    if (m.attributes) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7513
                        url.attributes = m.attributes;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7514
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7515
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7516
                resolved[m.type].push(url);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7517
                resolved[m.type + 'Mods'].push(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7518
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7519
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7520
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7521
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7522
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7523
        len = s.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7524
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7525
        // the default combo base
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7526
        comboBase = self.comboBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7527
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7528
        url = comboBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7529
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7530
        comboSources = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7531
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7532
        for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7533
            comboSource = comboBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7534
            m = self.getModule(s[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7535
            groupName = m && m.group;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7536
            group = self.groups[groupName];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7537
            if (groupName && group) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7538
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7539
                if (!group.combine || m.fullpath) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7540
                    //This is not a combo module, skip it and load it singly later.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7541
                    addSingle(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7542
                    continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7543
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7544
                m.combine = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7545
                if (group.comboBase) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7546
                    comboSource = group.comboBase;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7547
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7548
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7549
                if ("root" in group && L.isValue(group.root)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7550
                    m.root = group.root;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7551
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7552
                m.comboSep = group.comboSep || self.comboSep;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7553
                m.maxURLLength = group.maxURLLength || self.maxURLLength;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7554
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7555
                if (!self.combine) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7556
                    //This is not a combo module, skip it and load it singly later.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7557
                    addSingle(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7558
                    continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7559
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7560
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7561
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7562
            comboSources[comboSource] = comboSources[comboSource] || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7563
            comboSources[comboSource].push(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7564
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7565
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7566
        for (j in comboSources) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7567
            if (comboSources.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7568
                resCombos[j] = resCombos[j] || { js: [], jsMods: [], css: [], cssMods: [] };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7569
                url = j;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7570
                mods = comboSources[j];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7571
                len = mods.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7572
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7573
                if (len) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7574
                    for (i = 0; i < len; i++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7575
                        if (inserted[mods[i]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7576
                            continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7577
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7578
                        m = mods[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7579
                        // Do not try to combine non-yui JS unless combo def
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7580
                        // is found
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7581
                        if (m && (m.combine || !m.ext)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7582
                            resCombos[j].comboSep = m.comboSep;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7583
                            resCombos[j].group = m.group;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7584
                            resCombos[j].maxURLLength = m.maxURLLength;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7585
                            frag = ((L.isValue(m.root)) ? m.root : self.root) + (m.path || m.fullpath);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7586
                            frag = self._filter(frag, m.name);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7587
                            resCombos[j][m.type].push(frag);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7588
                            resCombos[j][m.type + 'Mods'].push(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7589
                        } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7590
                            //Add them to the next process..
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7591
                            if (mods[i]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7592
                                addSingle(mods[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7593
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7594
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7595
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7596
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7597
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7598
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7599
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7600
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7601
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7602
        for (j in resCombos) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7603
            if (resCombos.hasOwnProperty(j)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7604
                base = j;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7605
                comboSep = resCombos[base].comboSep || self.comboSep;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7606
                maxURLLength = resCombos[base].maxURLLength || self.maxURLLength;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7607
                for (type in resCombos[base]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7608
                    if (type === JS || type === CSS) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7609
                        urls = resCombos[base][type];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7610
                        mods = resCombos[base][type + 'Mods'];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7611
                        len = urls.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7612
                        tmpBase = base + urls.join(comboSep);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7613
                        baseLen = tmpBase.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7614
                        if (maxURLLength <= base.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7615
                            maxURLLength = MAX_URL_LENGTH;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7616
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7617
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7618
                        if (len) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7619
                            if (baseLen > maxURLLength) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7620
                                u = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7621
                                for (s = 0; s < len; s++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7622
                                    u.push(urls[s]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7623
                                    tmpBase = base + u.join(comboSep);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7624
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7625
                                    if (tmpBase.length > maxURLLength) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7626
                                        m = u.pop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7627
                                        tmpBase = base + u.join(comboSep);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7628
                                        resolved[type].push(self._filter(tmpBase, null, resCombos[base].group));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7629
                                        u = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7630
                                        if (m) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7631
                                            u.push(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7632
                                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7633
                                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7634
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7635
                                if (u.length) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7636
                                    tmpBase = base + u.join(comboSep);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7637
                                    resolved[type].push(self._filter(tmpBase, null, resCombos[base].group));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7638
                                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7639
                            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7640
                                resolved[type].push(self._filter(tmpBase, null, resCombos[base].group));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7641
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7642
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7643
                        resolved[type + 'Mods'] = resolved[type + 'Mods'].concat(mods);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7644
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7645
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7646
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7647
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7648
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7649
        resCombos = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7650
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7651
        return resolved;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7652
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7653
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7654
    Shortcut to calculate, resolve and load all modules.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7655
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7656
        var loader = new Y.Loader({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7657
            ignoreRegistered: true,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7658
            modules: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7659
                mod: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7660
                    path: 'mod.js'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7661
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7662
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7663
            requires: [ 'mod' ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7664
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7665
        loader.load(function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7666
            console.log('All modules have loaded..');
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7667
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7668
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7669
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7670
    @method load
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7671
    @param {Function} cb Executed after all load operations are complete
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7672
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7673
    load: function(cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7674
        if (!cb) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7675
            return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7676
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7677
        var self = this,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7678
            out = self.resolve(true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7679
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7680
        self.data = out;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7681
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7682
        self.onEnd = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7683
            cb.apply(self.context || self, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7684
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7685
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7686
        self.insert();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7687
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7688
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7689
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7690
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7691
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7692
}, '@VERSION@', {"requires": ["get", "features"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7693
YUI.add('loader-rollup', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7694
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7695
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7696
 * Optional automatic rollup logic for reducing http connections
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7697
 * when not using a combo service.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7698
 * @module loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7699
 * @submodule rollup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7700
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7701
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7702
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7703
 * Look for rollup packages to determine if all of the modules a
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7704
 * rollup supersedes are required.  If so, include the rollup to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7705
 * help reduce the total number of connections required.  Called
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7706
 * by calculate().  This is an optional feature, and requires the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7707
 * appropriate submodule to function.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7708
 * @method _rollup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7709
 * @for Loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7710
 * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7711
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7712
Y.Loader.prototype._rollup = function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7713
    var i, j, m, s, r = this.required, roll,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7714
        info = this.moduleInfo, rolled, c, smod;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7715
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7716
    // find and cache rollup modules
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7717
    if (this.dirty || !this.rollups) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7718
        this.rollups = {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7719
        for (i in info) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7720
            if (info.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7721
                m = this.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7722
                // if (m && m.rollup && m.supersedes) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7723
                if (m && m.rollup) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7724
                    this.rollups[i] = m;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7725
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7726
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7727
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7728
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7729
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7730
    // make as many passes as needed to pick up rollup rollups
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7731
    for (;;) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7732
        rolled = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7733
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7734
        // go through the rollup candidates
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7735
        for (i in this.rollups) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7736
            if (this.rollups.hasOwnProperty(i)) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7737
                // there can be only one, unless forced
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7738
                if (!r[i] && ((!this.loaded[i]) || this.forceMap[i])) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7739
                    m = this.getModule(i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7740
                    s = m.supersedes || [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7741
                    roll = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7742
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7743
                    // @TODO remove continue
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7744
                    if (!m.rollup) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7745
                        continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7746
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7747
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7748
                    c = 0;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7749
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7750
                    // check the threshold
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7751
                    for (j = 0; j < s.length; j++) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7752
                        smod = info[s[j]];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7753
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7754
                        // if the superseded module is loaded, we can't
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7755
                        // load the rollup unless it has been forced.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7756
                        if (this.loaded[s[j]] && !this.forceMap[s[j]]) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7757
                            roll = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7758
                            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7759
                        // increment the counter if this module is required.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7760
                        // if we are beyond the rollup threshold, we will
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7761
                        // use the rollup module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7762
                        } else if (r[s[j]] && m.type === smod.type) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7763
                            c++;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7764
                            roll = (c >= m.rollup);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7765
                            if (roll) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7766
                                break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7767
                            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7768
                        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7769
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7770
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7771
                    if (roll) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7772
                        // add the rollup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7773
                        r[i] = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7774
                        rolled = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7775
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7776
                        // expand the rollup's dependencies
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7777
                        this.getRequires(m);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7778
                    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7779
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7780
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7781
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7782
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7783
        // if we made it here w/o rolling up something, we are done
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7784
        if (!rolled) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7785
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7786
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7787
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7788
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7789
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7790
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7791
}, '@VERSION@', {"requires": ["loader-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7792
YUI.add('loader-yui3', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7793
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7794
/* This file is auto-generated by (yogi loader --yes --mix --start ../) */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7795
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7796
/*jshint maxlen:900, eqeqeq: false */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7797
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7798
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7799
 * YUI 3 module metadata
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7800
 * @module loader
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7801
 * @submodule loader-yui3
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7802
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7803
YUI.Env[Y.version].modules = YUI.Env[Y.version].modules || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7804
Y.mix(YUI.Env[Y.version].modules, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7805
    "align-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7806
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7807
            "node-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7808
            "node-pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7809
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7810
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7811
    "anim": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7812
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7813
            "anim-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7814
            "anim-color",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7815
            "anim-curve",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7816
            "anim-easing",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7817
            "anim-node-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7818
            "anim-scroll",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7819
            "anim-xy"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7820
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7821
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7822
    "anim-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7823
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7824
            "base-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7825
            "node-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7826
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7827
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7828
    "anim-color": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7829
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7830
            "anim-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7831
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7832
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7833
    "anim-curve": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7834
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7835
            "anim-xy"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7836
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7837
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7838
    "anim-easing": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7839
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7840
            "anim-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7841
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7842
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7843
    "anim-node-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7844
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7845
            "node-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7846
            "anim-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7847
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7848
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7849
    "anim-scroll": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7850
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7851
            "anim-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7852
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7853
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7854
    "anim-shape": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7855
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7856
            "anim-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7857
            "anim-easing",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7858
            "anim-color",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7859
            "matrix"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7860
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7861
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7862
    "anim-shape-transform": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7863
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7864
            "anim-shape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7865
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7866
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7867
    "anim-xy": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7868
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7869
            "anim-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7870
            "node-screen"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7871
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7872
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7873
    "app": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7874
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7875
            "app-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7876
            "app-content",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7877
            "app-transitions",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7878
            "lazy-model-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7879
            "model",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7880
            "model-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7881
            "model-sync-rest",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7882
            "model-sync-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7883
            "router",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7884
            "view",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7885
            "view-node-map"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7886
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7887
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7888
    "app-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7889
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7890
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7891
            "pjax-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7892
            "router",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7893
            "view"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7894
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7895
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7896
    "app-content": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7897
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7898
            "app-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7899
            "pjax-content"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7900
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7901
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7902
    "app-transitions": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7903
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7904
            "app-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7905
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7906
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7907
    "app-transitions-css": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7908
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7909
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7910
    "app-transitions-native": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7911
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7912
            "name": "app-transitions-native",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7913
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7914
    var doc  = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7915
        node = doc ? doc.documentElement : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7916
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7917
    if (node && node.style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7918
        return ('MozTransition' in node.style || 'WebkitTransition' in node.style || 'transition' in node.style);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7919
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7920
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7921
    return false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7922
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7923
            "trigger": "app-transitions"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7924
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7925
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7926
            "app-transitions",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7927
            "app-transitions-css",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7928
            "parallel",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7929
            "transition"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7930
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7931
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7932
    "array-extras": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7933
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7934
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7935
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7936
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7937
    "array-invoke": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7938
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7939
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7940
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7941
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7942
    "arraylist": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7943
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7944
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7945
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7946
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7947
    "arraylist-add": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7948
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7949
            "arraylist"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7950
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7951
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7952
    "arraylist-filter": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7953
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7954
            "arraylist"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7955
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7956
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7957
    "arraysort": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7958
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7959
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7960
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7961
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7962
    "async-queue": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7963
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7964
            "event-custom"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7965
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7966
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7967
    "attribute": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7968
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7969
            "attribute-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7970
            "attribute-complex"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7971
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7972
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7973
    "attribute-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7974
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7975
            "attribute-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7976
            "attribute-observable",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7977
            "attribute-extras"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7978
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7979
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7980
    "attribute-complex": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7981
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7982
            "attribute-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7983
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7984
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7985
    "attribute-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7986
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7987
            "oop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7988
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7989
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7990
    "attribute-events": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7991
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7992
            "attribute-observable"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7993
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7994
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7995
    "attribute-extras": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7996
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7997
            "oop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7998
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  7999
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8000
    "attribute-observable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8001
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8002
            "event-custom"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8003
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8004
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8005
    "autocomplete": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8006
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8007
            "autocomplete-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8008
            "autocomplete-sources",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8009
            "autocomplete-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8010
            "autocomplete-plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8011
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8012
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8013
    "autocomplete-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8014
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8015
            "autocomplete-sources"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8016
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8017
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8018
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8019
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8020
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8021
            "event-valuechange",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8022
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8023
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8024
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8025
    "autocomplete-filters": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8026
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8027
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8028
            "text-wordbreak"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8029
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8030
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8031
    "autocomplete-filters-accentfold": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8032
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8033
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8034
            "text-accentfold",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8035
            "text-wordbreak"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8036
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8037
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8038
    "autocomplete-highlighters": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8039
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8040
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8041
            "highlight-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8042
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8043
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8044
    "autocomplete-highlighters-accentfold": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8045
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8046
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8047
            "highlight-accentfold"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8048
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8049
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8050
    "autocomplete-list": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8051
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8052
            "autocomplete-sources"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8053
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8054
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8055
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8056
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8057
            "hu",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8058
            "it"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8059
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8060
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8061
            "autocomplete-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8062
            "event-resize",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8063
            "node-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8064
            "selector-css3",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8065
            "shim-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8066
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8067
            "widget-position",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8068
            "widget-position-align"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8069
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8070
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8071
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8072
    "autocomplete-list-keys": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8073
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8074
            "name": "autocomplete-list-keys",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8075
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8076
    // Only add keyboard support to autocomplete-list if this doesn't appear to
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8077
    // be an iOS or Android-based mobile device.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8078
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8079
    // There's currently no feasible way to actually detect whether a device has
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8080
    // a hardware keyboard, so this sniff will have to do. It can easily be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8081
    // overridden by manually loading the autocomplete-list-keys module.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8082
    //
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8083
    // Worth noting: even though iOS supports bluetooth keyboards, Mobile Safari
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8084
    // doesn't fire the keyboard events used by AutoCompleteList, so there's
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8085
    // no point loading the -keys module even when a bluetooth keyboard may be
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8086
    // available.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8087
    return !(Y.UA.ios || Y.UA.android);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8088
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8089
            "trigger": "autocomplete-list"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8090
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8091
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8092
            "autocomplete-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8093
            "base-build"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8094
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8095
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8096
    "autocomplete-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8097
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8098
            "autocomplete-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8099
            "node-pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8100
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8101
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8102
    "autocomplete-sources": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8103
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8104
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8105
            "json-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8106
            "jsonp",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8107
            "yql"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8108
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8109
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8110
            "autocomplete-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8111
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8112
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8113
    "axes": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8114
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8115
            "axis-numeric",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8116
            "axis-category",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8117
            "axis-time",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8118
            "axis-stacked"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8119
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8120
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8121
    "axes-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8122
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8123
            "axis-numeric-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8124
            "axis-category-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8125
            "axis-time-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8126
            "axis-stacked-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8127
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8128
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8129
    "axis": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8130
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8131
            "dom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8132
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8133
            "widget-position",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8134
            "widget-stack",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8135
            "graphics",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8136
            "axis-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8137
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8138
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8139
    "axis-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8140
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8141
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8142
            "datatype-number",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8143
            "datatype-date",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8144
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8145
            "event-custom"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8146
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8147
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8148
    "axis-category": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8149
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8150
            "axis",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8151
            "axis-category-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8152
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8153
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8154
    "axis-category-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8155
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8156
            "axis-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8157
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8158
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8159
    "axis-numeric": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8160
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8161
            "axis",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8162
            "axis-numeric-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8163
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8164
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8165
    "axis-numeric-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8166
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8167
            "axis-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8168
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8169
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8170
    "axis-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8171
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8172
            "axis-numeric",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8173
            "axis-stacked-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8174
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8175
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8176
    "axis-stacked-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8177
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8178
            "axis-numeric-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8179
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8180
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8181
    "axis-time": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8182
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8183
            "axis",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8184
            "axis-time-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8185
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8186
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8187
    "axis-time-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8188
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8189
            "axis-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8190
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8191
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8192
    "base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8193
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8194
            "base-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8195
            "base-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8196
            "base-build"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8197
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8198
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8199
    "base-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8200
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8201
            "attribute-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8202
            "base-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8203
            "base-observable"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8204
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8205
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8206
    "base-build": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8207
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8208
            "base-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8209
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8210
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8211
    "base-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8212
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8213
            "attribute-core"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8214
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8215
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8216
    "base-observable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8217
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8218
            "attribute-observable",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8219
            "base-core"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8220
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8221
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8222
    "base-pluginhost": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8223
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8224
            "base-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8225
            "pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8226
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8227
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8228
    "button": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8229
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8230
            "button-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8231
            "cssbutton",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8232
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8233
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8234
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8235
    "button-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8236
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8237
            "attribute-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8238
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8239
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8240
            "escape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8241
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8242
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8243
    "button-group": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8244
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8245
            "button-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8246
            "cssbutton",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8247
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8248
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8249
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8250
    "button-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8251
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8252
            "button-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8253
            "cssbutton",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8254
            "node-pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8255
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8256
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8257
    "cache": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8258
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8259
            "cache-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8260
            "cache-offline",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8261
            "cache-plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8262
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8263
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8264
    "cache-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8265
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8266
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8267
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8268
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8269
    "cache-offline": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8270
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8271
            "cache-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8272
            "json"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8273
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8274
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8275
    "cache-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8276
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8277
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8278
            "cache-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8279
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8280
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8281
    "calendar": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8282
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8283
            "calendar-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8284
            "calendarnavigator"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8285
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8286
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8287
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8288
    "calendar-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8289
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8290
            "de",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8291
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8292
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8293
            "es-AR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8294
            "fr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8295
            "hu",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8296
            "it",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8297
            "ja",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8298
            "nb-NO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8299
            "nl",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8300
            "pt-BR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8301
            "ru",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8302
            "zh-Hans",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8303
            "zh-Hans-CN",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8304
            "zh-Hant",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8305
            "zh-Hant-HK",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8306
            "zh-HANT-TW"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8307
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8308
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8309
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8310
            "datatype-date",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8311
            "datatype-date-math",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8312
            "cssgrids"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8313
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8314
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8315
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8316
    "calendarnavigator": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8317
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8318
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8319
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8320
            "datatype-date",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8321
            "node"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8322
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8323
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8324
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8325
    "charts": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8326
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8327
            "charts-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8328
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8329
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8330
    "charts-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8331
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8332
            "dom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8333
            "event-mouseenter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8334
            "event-touch",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8335
            "graphics-group",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8336
            "axes",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8337
            "series-pie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8338
            "series-line",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8339
            "series-marker",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8340
            "series-area",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8341
            "series-spline",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8342
            "series-column",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8343
            "series-bar",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8344
            "series-areaspline",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8345
            "series-combo",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8346
            "series-combospline",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8347
            "series-line-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8348
            "series-marker-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8349
            "series-area-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8350
            "series-spline-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8351
            "series-column-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8352
            "series-bar-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8353
            "series-areaspline-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8354
            "series-combo-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8355
            "series-combospline-stacked"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8356
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8357
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8358
    "charts-legend": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8359
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8360
            "charts-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8361
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8362
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8363
    "classnamemanager": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8364
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8365
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8366
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8367
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8368
    "clickable-rail": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8369
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8370
            "slider-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8371
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8372
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8373
    "collection": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8374
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8375
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8376
            "arraylist",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8377
            "arraylist-add",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8378
            "arraylist-filter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8379
            "array-invoke"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8380
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8381
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8382
    "color": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8383
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8384
            "color-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8385
            "color-hsl",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8386
            "color-harmony"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8387
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8388
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8389
    "color-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8390
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8391
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8392
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8393
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8394
    "color-harmony": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8395
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8396
            "color-hsl"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8397
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8398
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8399
    "color-hsl": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8400
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8401
            "color-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8402
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8403
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8404
    "color-hsv": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8405
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8406
            "color-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8407
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8408
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8409
    "console": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8410
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8411
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8412
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8413
            "hu",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8414
            "it",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8415
            "ja"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8416
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8417
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8418
            "yui-log",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8419
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8420
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8421
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8422
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8423
    "console-filters": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8424
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8425
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8426
            "console"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8427
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8428
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8429
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8430
    "content-editable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8431
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8432
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8433
            "editor-selection",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8434
            "stylesheet",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8435
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8436
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8437
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8438
    "controller": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8439
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8440
            "router"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8441
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8442
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8443
    "cookie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8444
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8445
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8446
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8447
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8448
    "createlink-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8449
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8450
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8451
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8452
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8453
    "cssbase": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8454
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8455
            "cssreset",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8456
            "cssfonts",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8457
            "cssgrids",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8458
            "cssreset-context",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8459
            "cssfonts-context",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8460
            "cssgrids-context"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8461
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8462
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8463
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8464
    "cssbase-context": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8465
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8466
            "cssreset",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8467
            "cssfonts",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8468
            "cssgrids",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8469
            "cssreset-context",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8470
            "cssfonts-context",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8471
            "cssgrids-context"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8472
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8473
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8474
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8475
    "cssbutton": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8476
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8477
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8478
    "cssfonts": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8479
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8480
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8481
    "cssfonts-context": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8482
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8483
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8484
    "cssgrids": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8485
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8486
            "cssnormalize"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8487
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8488
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8489
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8490
    "cssgrids-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8491
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8492
            "cssnormalize"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8493
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8494
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8495
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8496
    "cssgrids-responsive": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8497
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8498
            "cssnormalize"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8499
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8500
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8501
            "cssgrids",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8502
            "cssgrids-responsive-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8503
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8504
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8505
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8506
    "cssgrids-units": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8507
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8508
            "cssnormalize"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8509
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8510
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8511
            "cssgrids-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8512
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8513
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8514
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8515
    "cssnormalize": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8516
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8517
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8518
    "cssnormalize-context": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8519
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8520
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8521
    "cssreset": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8522
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8523
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8524
    "cssreset-context": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8525
        "type": "css"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8526
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8527
    "dataschema": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8528
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8529
            "dataschema-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8530
            "dataschema-json",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8531
            "dataschema-xml",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8532
            "dataschema-array",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8533
            "dataschema-text"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8534
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8535
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8536
    "dataschema-array": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8537
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8538
            "dataschema-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8539
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8540
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8541
    "dataschema-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8542
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8543
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8544
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8545
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8546
    "dataschema-json": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8547
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8548
            "dataschema-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8549
            "json"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8550
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8551
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8552
    "dataschema-text": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8553
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8554
            "dataschema-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8555
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8556
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8557
    "dataschema-xml": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8558
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8559
            "dataschema-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8560
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8561
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8562
    "datasource": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8563
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8564
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8565
            "datasource-io",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8566
            "datasource-get",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8567
            "datasource-function",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8568
            "datasource-cache",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8569
            "datasource-jsonschema",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8570
            "datasource-xmlschema",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8571
            "datasource-arrayschema",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8572
            "datasource-textschema",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8573
            "datasource-polling"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8574
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8575
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8576
    "datasource-arrayschema": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8577
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8578
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8579
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8580
            "dataschema-array"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8581
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8582
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8583
    "datasource-cache": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8584
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8585
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8586
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8587
            "cache-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8588
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8589
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8590
    "datasource-function": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8591
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8592
            "datasource-local"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8593
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8594
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8595
    "datasource-get": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8596
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8597
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8598
            "get"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8599
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8600
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8601
    "datasource-io": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8602
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8603
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8604
            "io-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8605
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8606
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8607
    "datasource-jsonschema": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8608
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8609
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8610
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8611
            "dataschema-json"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8612
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8613
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8614
    "datasource-local": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8615
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8616
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8617
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8618
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8619
    "datasource-polling": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8620
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8621
            "datasource-local"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8622
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8623
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8624
    "datasource-textschema": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8625
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8626
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8627
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8628
            "dataschema-text"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8629
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8630
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8631
    "datasource-xmlschema": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8632
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8633
            "datasource-local",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8634
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8635
            "datatype-xml",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8636
            "dataschema-xml"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8637
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8638
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8639
    "datatable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8640
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8641
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8642
            "datatable-table",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8643
            "datatable-head",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8644
            "datatable-body",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8645
            "datatable-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8646
            "datatable-column-widths",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8647
            "datatable-message",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8648
            "datatable-mutable",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8649
            "datatable-sort",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8650
            "datatable-datasource"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8651
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8652
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8653
    "datatable-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8654
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8655
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8656
            "datatable-table",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8657
            "datatable-head",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8658
            "datatable-body",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8659
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8660
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8661
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8662
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8663
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8664
    "datatable-body": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8665
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8666
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8667
            "view",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8668
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8669
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8670
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8671
    "datatable-column-widths": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8672
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8673
            "datatable-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8674
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8675
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8676
    "datatable-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8677
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8678
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8679
            "model-list",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8680
            "node-event-delegate"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8681
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8682
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8683
    "datatable-datasource": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8684
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8685
            "datatable-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8686
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8687
            "datasource-local"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8688
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8689
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8690
    "datatable-foot": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8691
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8692
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8693
            "view"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8694
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8695
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8696
    "datatable-formatters": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8697
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8698
            "datatable-body",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8699
            "datatype-number-format",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8700
            "datatype-date-format",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8701
            "escape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8702
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8703
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8704
    "datatable-head": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8705
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8706
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8707
            "view",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8708
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8709
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8710
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8711
    "datatable-highlight": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8712
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8713
            "datatable-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8714
            "event-hover"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8715
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8716
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8717
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8718
    "datatable-keynav": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8719
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8720
            "datatable-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8721
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8722
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8723
    "datatable-message": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8724
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8725
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8726
            "fr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8727
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8728
            "hu",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8729
            "it"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8730
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8731
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8732
            "datatable-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8733
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8734
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8735
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8736
    "datatable-mutable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8737
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8738
            "datatable-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8739
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8740
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8741
    "datatable-paginator": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8742
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8743
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8744
            "fr"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8745
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8746
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8747
            "model",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8748
            "view",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8749
            "paginator-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8750
            "datatable-foot",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8751
            "datatable-paginator-templates"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8752
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8753
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8754
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8755
    "datatable-paginator-templates": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8756
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8757
            "template"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8758
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8759
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8760
    "datatable-scroll": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8761
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8762
            "datatable-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8763
            "datatable-column-widths",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8764
            "dom-screen"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8765
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8766
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8767
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8768
    "datatable-sort": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8769
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8770
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8771
            "fr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8772
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8773
            "hu"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8774
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8775
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8776
            "datatable-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8777
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8778
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8779
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8780
    "datatable-table": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8781
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8782
            "datatable-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8783
            "datatable-head",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8784
            "datatable-body",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8785
            "view",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8786
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8787
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8788
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8789
    "datatype": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8790
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8791
            "datatype-date",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8792
            "datatype-number",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8793
            "datatype-xml"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8794
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8795
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8796
    "datatype-date": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8797
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8798
            "datatype-date-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8799
            "datatype-date-format",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8800
            "datatype-date-math"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8801
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8802
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8803
    "datatype-date-format": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8804
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8805
            "ar",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8806
            "ar-JO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8807
            "ca",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8808
            "ca-ES",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8809
            "da",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8810
            "da-DK",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8811
            "de",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8812
            "de-AT",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8813
            "de-DE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8814
            "el",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8815
            "el-GR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8816
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8817
            "en-AU",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8818
            "en-CA",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8819
            "en-GB",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8820
            "en-IE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8821
            "en-IN",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8822
            "en-JO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8823
            "en-MY",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8824
            "en-NZ",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8825
            "en-PH",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8826
            "en-SG",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8827
            "en-US",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8828
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8829
            "es-AR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8830
            "es-BO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8831
            "es-CL",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8832
            "es-CO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8833
            "es-EC",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8834
            "es-ES",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8835
            "es-MX",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8836
            "es-PE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8837
            "es-PY",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8838
            "es-US",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8839
            "es-UY",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8840
            "es-VE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8841
            "fi",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8842
            "fi-FI",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8843
            "fr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8844
            "fr-BE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8845
            "fr-CA",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8846
            "fr-FR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8847
            "hi",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8848
            "hi-IN",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8849
            "hu",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8850
            "id",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8851
            "id-ID",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8852
            "it",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8853
            "it-IT",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8854
            "ja",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8855
            "ja-JP",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8856
            "ko",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8857
            "ko-KR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8858
            "ms",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8859
            "ms-MY",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8860
            "nb",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8861
            "nb-NO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8862
            "nl",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8863
            "nl-BE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8864
            "nl-NL",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8865
            "pl",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8866
            "pl-PL",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8867
            "pt",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8868
            "pt-BR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8869
            "ro",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8870
            "ro-RO",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8871
            "ru",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8872
            "ru-RU",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8873
            "sv",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8874
            "sv-SE",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8875
            "th",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8876
            "th-TH",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8877
            "tr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8878
            "tr-TR",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8879
            "vi",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8880
            "vi-VN",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8881
            "zh-Hans",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8882
            "zh-Hans-CN",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8883
            "zh-Hant",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8884
            "zh-Hant-HK",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8885
            "zh-Hant-TW"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8886
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8887
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8888
    "datatype-date-math": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8889
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8890
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8891
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8892
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8893
    "datatype-date-parse": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8894
    "datatype-number": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8895
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8896
            "datatype-number-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8897
            "datatype-number-format"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8898
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8899
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8900
    "datatype-number-format": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8901
    "datatype-number-parse": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8902
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8903
            "escape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8904
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8905
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8906
    "datatype-xml": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8907
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8908
            "datatype-xml-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8909
            "datatype-xml-format"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8910
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8911
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8912
    "datatype-xml-format": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8913
    "datatype-xml-parse": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8914
    "dd": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8915
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8916
            "dd-ddm-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8917
            "dd-ddm",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8918
            "dd-ddm-drop",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8919
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8920
            "dd-proxy",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8921
            "dd-constrain",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8922
            "dd-drop",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8923
            "dd-scroll",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8924
            "dd-delegate"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8925
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8926
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8927
    "dd-constrain": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8928
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8929
            "dd-drag"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8930
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8931
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8932
    "dd-ddm": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8933
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8934
            "dd-ddm-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8935
            "event-resize"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8936
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8937
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8938
    "dd-ddm-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8939
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8940
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8941
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8942
            "yui-throttle",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8943
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8944
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8945
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8946
    "dd-ddm-drop": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8947
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8948
            "dd-ddm"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8949
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8950
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8951
    "dd-delegate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8952
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8953
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8954
            "dd-drop-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8955
            "event-mouseenter"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8956
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8957
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8958
    "dd-drag": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8959
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8960
            "dd-ddm-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8961
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8962
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8963
    "dd-drop": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8964
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8965
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8966
            "dd-ddm-drop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8967
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8968
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8969
    "dd-drop-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8970
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8971
            "dd-drop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8972
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8973
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8974
    "dd-gestures": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8975
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8976
            "name": "dd-gestures",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8977
            "trigger": "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8978
            "ua": "touchEnabled"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8979
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8980
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8981
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8982
            "event-synthetic",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8983
            "event-gestures"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8984
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8985
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8986
    "dd-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8987
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8988
            "dd-constrain",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8989
            "dd-proxy"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8990
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8991
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8992
            "dd-drag"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8993
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8994
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8995
    "dd-proxy": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8996
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8997
            "dd-drag"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8998
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  8999
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9000
    "dd-scroll": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9001
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9002
            "dd-drag"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9003
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9004
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9005
    "dial": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9006
        "lang": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9007
            "en",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9008
            "es",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9009
            "hu"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9010
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9011
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9012
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9013
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9014
            "event-mouseenter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9015
            "event-move",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9016
            "event-key",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9017
            "transition",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9018
            "intl"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9019
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9020
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9021
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9022
    "dom": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9023
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9024
            "dom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9025
            "dom-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9026
            "dom-style",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9027
            "selector-native",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9028
            "selector"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9029
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9030
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9031
    "dom-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9032
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9033
            "dom-core"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9034
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9035
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9036
    "dom-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9037
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9038
            "oop",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9039
            "features"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9040
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9041
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9042
    "dom-screen": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9043
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9044
            "dom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9045
            "dom-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9046
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9047
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9048
    "dom-style": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9049
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9050
            "dom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9051
            "color-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9052
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9053
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9054
    "dom-style-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9055
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9056
            "name": "dom-style-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9057
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9058
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9059
    var testFeature = Y.Features.test,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9060
        addFeature = Y.Features.add,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9061
        WINDOW = Y.config.win,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9062
        DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9063
        DOCUMENT_ELEMENT = 'documentElement',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9064
        ret = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9065
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9066
    addFeature('style', 'computedStyle', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9067
        test: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9068
            return WINDOW && 'getComputedStyle' in WINDOW;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9069
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9070
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9071
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9072
    addFeature('style', 'opacity', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9073
        test: function() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9074
            return DOCUMENT && 'opacity' in DOCUMENT[DOCUMENT_ELEMENT].style;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9075
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9076
    });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9077
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9078
    ret =  (!testFeature('style', 'opacity') &&
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9079
            !testFeature('style', 'computedStyle'));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9080
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9081
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9082
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9083
            "trigger": "dom-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9084
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9085
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9086
            "dom-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9087
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9088
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9089
    "dump": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9090
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9091
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9092
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9093
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9094
    "editor": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9095
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9096
            "frame",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9097
            "editor-selection",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9098
            "exec-command",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9099
            "editor-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9100
            "editor-para",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9101
            "editor-br",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9102
            "editor-bidi",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9103
            "editor-tab",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9104
            "createlink-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9105
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9106
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9107
    "editor-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9108
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9109
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9110
            "frame",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9111
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9112
            "exec-command",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9113
            "editor-selection"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9114
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9115
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9116
    "editor-bidi": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9117
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9118
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9119
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9120
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9121
    "editor-br": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9122
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9123
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9124
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9125
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9126
    "editor-inline": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9127
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9128
            "editor-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9129
            "content-editable"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9130
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9131
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9132
    "editor-lists": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9133
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9134
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9135
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9136
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9137
    "editor-para": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9138
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9139
            "editor-para-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9140
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9141
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9142
    "editor-para-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9143
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9144
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9145
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9146
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9147
    "editor-para-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9148
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9149
            "name": "editor-para-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9150
            "trigger": "editor-para",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9151
            "ua": "ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9152
            "when": "instead"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9153
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9154
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9155
            "editor-para-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9156
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9157
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9158
    "editor-selection": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9159
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9160
            "node"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9161
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9162
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9163
    "editor-tab": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9164
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9165
            "editor-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9166
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9167
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9168
    "escape": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9169
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9170
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9171
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9172
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9173
    "event": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9174
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9175
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9176
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9177
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9178
            "event-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9179
            "event-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9180
            "event-synthetic",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9181
            "event-mousewheel",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9182
            "event-mouseenter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9183
            "event-key",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9184
            "event-focus",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9185
            "event-resize",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9186
            "event-hover",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9187
            "event-outside",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9188
            "event-touch",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9189
            "event-move",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9190
            "event-flick",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9191
            "event-valuechange",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9192
            "event-tap"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9193
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9194
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9195
    "event-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9196
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9197
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9198
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9199
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9200
            "event-custom-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9201
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9202
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9203
    "event-base-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9204
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9205
            "event-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9206
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9207
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9208
            "name": "event-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9209
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9210
    var imp = Y.config.doc && Y.config.doc.implementation;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9211
    return (imp && (!imp.hasFeature('Events', '2.0')));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9212
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9213
            "trigger": "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9214
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9215
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9216
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9217
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9218
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9219
    "event-contextmenu": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9220
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9221
            "event-synthetic",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9222
            "dom-screen"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9223
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9224
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9225
    "event-custom": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9226
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9227
            "event-custom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9228
            "event-custom-complex"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9229
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9230
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9231
    "event-custom-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9232
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9233
            "oop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9234
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9235
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9236
    "event-custom-complex": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9237
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9238
            "event-custom-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9239
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9240
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9241
    "event-delegate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9242
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9243
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9244
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9245
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9246
    "event-flick": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9247
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9248
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9249
            "event-touch",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9250
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9251
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9252
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9253
    "event-focus": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9254
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9255
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9256
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9257
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9258
    "event-gestures": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9259
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9260
            "event-flick",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9261
            "event-move"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9262
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9263
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9264
    "event-hover": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9265
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9266
            "event-mouseenter"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9267
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9268
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9269
    "event-key": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9270
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9271
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9272
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9273
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9274
    "event-mouseenter": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9275
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9276
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9277
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9278
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9279
    "event-mousewheel": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9280
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9281
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9282
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9283
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9284
    "event-move": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9285
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9286
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9287
            "event-touch",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9288
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9289
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9290
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9291
    "event-outside": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9292
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9293
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9294
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9295
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9296
    "event-resize": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9297
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9298
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9299
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9300
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9301
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9302
    "event-simulate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9303
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9304
            "event-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9305
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9306
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9307
    "event-synthetic": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9308
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9309
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9310
            "event-custom-complex"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9311
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9312
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9313
    "event-tap": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9314
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9315
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9316
            "event-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9317
            "event-touch",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9318
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9319
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9320
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9321
    "event-touch": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9322
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9323
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9324
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9325
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9326
    "event-valuechange": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9327
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9328
            "event-focus",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9329
            "event-synthetic"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9330
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9331
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9332
    "exec-command": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9333
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9334
            "frame"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9335
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9336
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9337
    "features": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9338
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9339
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9340
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9341
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9342
    "file": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9343
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9344
            "file-flash",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9345
            "file-html5"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9346
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9347
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9348
    "file-flash": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9349
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9350
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9351
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9352
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9353
    "file-html5": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9354
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9355
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9356
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9357
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9358
    "frame": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9359
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9360
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9361
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9362
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9363
            "selector-css3",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9364
            "yui-throttle"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9365
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9366
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9367
    "gesture-simulate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9368
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9369
            "async-queue",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9370
            "event-simulate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9371
            "node-screen"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9372
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9373
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9374
    "get": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9375
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9376
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9377
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9378
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9379
    "graphics": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9380
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9381
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9382
            "event-custom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9383
            "pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9384
            "matrix",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9385
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9386
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9387
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9388
    "graphics-canvas": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9389
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9390
            "name": "graphics-canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9391
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9392
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9393
        useCanvas = Y.config.defaultGraphicEngine && Y.config.defaultGraphicEngine == "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9394
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9395
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9396
    return (!svg || useCanvas) && (canvas && canvas.getContext && canvas.getContext("2d"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9397
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9398
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9399
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9400
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9401
            "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9402
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9403
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9404
    "graphics-canvas-default": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9405
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9406
            "name": "graphics-canvas-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9407
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9408
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9409
        useCanvas = Y.config.defaultGraphicEngine && Y.config.defaultGraphicEngine == "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9410
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9411
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9412
    return (!svg || useCanvas) && (canvas && canvas.getContext && canvas.getContext("2d"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9413
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9414
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9415
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9416
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9417
    "graphics-group": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9418
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9419
            "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9420
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9421
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9422
    "graphics-svg": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9423
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9424
            "name": "graphics-svg",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9425
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9426
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9427
        useSVG = !Y.config.defaultGraphicEngine || Y.config.defaultGraphicEngine != "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9428
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9429
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9430
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9431
    return svg && (useSVG || !canvas);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9432
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9433
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9434
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9435
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9436
            "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9437
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9438
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9439
    "graphics-svg-default": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9440
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9441
            "name": "graphics-svg-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9442
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9443
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9444
        useSVG = !Y.config.defaultGraphicEngine || Y.config.defaultGraphicEngine != "canvas",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9445
		canvas = DOCUMENT && DOCUMENT.createElement("canvas"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9446
        svg = (DOCUMENT && DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9447
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9448
    return svg && (useSVG || !canvas);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9449
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9450
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9451
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9452
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9453
    "graphics-vml": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9454
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9455
            "name": "graphics-vml",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9456
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9457
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9458
		canvas = DOCUMENT && DOCUMENT.createElement("canvas");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9459
    return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d")));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9460
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9461
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9462
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9463
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9464
            "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9465
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9466
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9467
    "graphics-vml-default": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9468
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9469
            "name": "graphics-vml-default",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9470
            "test": function(Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9471
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9472
		canvas = DOCUMENT && DOCUMENT.createElement("canvas");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9473
    return (DOCUMENT && !DOCUMENT.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") && (!canvas || !canvas.getContext || !canvas.getContext("2d")));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9474
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9475
            "trigger": "graphics"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9476
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9477
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9478
    "handlebars": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9479
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9480
            "handlebars-compiler"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9481
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9482
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9483
    "handlebars-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9484
        "requires": []
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9485
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9486
    "handlebars-compiler": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9487
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9488
            "handlebars-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9489
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9490
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9491
    "highlight": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9492
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9493
            "highlight-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9494
            "highlight-accentfold"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9495
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9496
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9497
    "highlight-accentfold": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9498
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9499
            "highlight-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9500
            "text-accentfold"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9501
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9502
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9503
    "highlight-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9504
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9505
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9506
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9507
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9508
            "text-wordbreak"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9509
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9510
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9511
    "history": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9512
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9513
            "history-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9514
            "history-hash",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9515
            "history-html5"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9516
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9517
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9518
    "history-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9519
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9520
            "event-custom-complex"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9521
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9522
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9523
    "history-hash": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9524
        "after": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9525
            "history-html5"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9526
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9527
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9528
            "event-synthetic",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9529
            "history-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9530
            "yui-later"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9531
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9532
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9533
    "history-hash-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9534
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9535
            "name": "history-hash-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9536
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9537
    var docMode = Y.config.doc && Y.config.doc.documentMode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9538
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9539
    return Y.UA.ie && (!('onhashchange' in Y.config.win) ||
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9540
            !docMode || docMode < 8);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9541
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9542
            "trigger": "history-hash"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9543
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9544
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9545
            "history-hash",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9546
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9547
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9548
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9549
    "history-html5": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9550
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9551
            "json"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9552
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9553
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9554
            "event-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9555
            "history-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9556
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9557
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9558
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9559
    "imageloader": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9560
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9561
            "base-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9562
            "node-style",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9563
            "node-screen"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9564
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9565
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9566
    "intl": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9567
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9568
            "intl-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9569
            "event-custom"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9570
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9571
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9572
    "intl-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9573
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9574
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9575
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9576
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9577
    "io": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9578
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9579
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9580
            "io-xdr",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9581
            "io-form",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9582
            "io-upload-iframe",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9583
            "io-queue"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9584
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9585
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9586
    "io-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9587
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9588
            "event-custom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9589
            "querystring-stringify-simple"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9590
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9591
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9592
    "io-form": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9593
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9594
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9595
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9596
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9597
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9598
    "io-nodejs": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9599
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9600
            "name": "io-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9601
            "trigger": "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9602
            "ua": "nodejs"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9603
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9604
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9605
            "io-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9606
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9607
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9608
    "io-queue": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9609
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9610
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9611
            "queue-promote"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9612
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9613
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9614
    "io-upload-iframe": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9615
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9616
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9617
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9618
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9619
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9620
    "io-xdr": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9621
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9622
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9623
            "datatype-xml-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9624
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9625
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9626
    "json": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9627
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9628
            "json-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9629
            "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9630
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9631
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9632
    "json-parse": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9633
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9634
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9635
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9636
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9637
    "json-parse-shim": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9638
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9639
            "name": "json-parse-shim",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9640
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9641
    var _JSON = Y.config.global.JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9642
        Native = Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9643
        nativeSupport = Y.config.useNativeJSONParse !== false && !!Native;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9644
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9645
    function workingNative( k, v ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9646
        return k === "ok" ? true : v;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9647
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9648
    
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9649
    // Double check basic functionality.  This is mainly to catch early broken
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9650
    // implementations of the JSON API in Firefox 3.1 beta1 and beta2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9651
    if ( nativeSupport ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9652
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9653
            nativeSupport = ( Native.parse( '{"ok":false}', workingNative ) ).ok;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9654
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9655
        catch ( e ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9656
            nativeSupport = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9657
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9658
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9659
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9660
    return !nativeSupport;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9661
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9662
            "trigger": "json-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9663
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9664
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9665
            "json-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9666
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9667
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9668
    "json-stringify": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9669
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9670
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9671
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9672
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9673
    "json-stringify-shim": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9674
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9675
            "name": "json-stringify-shim",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9676
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9677
    var _JSON = Y.config.global.JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9678
        Native = Object.prototype.toString.call(_JSON) === '[object JSON]' && _JSON,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9679
        nativeSupport = Y.config.useNativeJSONStringify !== false && !!Native;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9680
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9681
    // Double check basic native functionality.  This is primarily to catch broken
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9682
    // early JSON API implementations in Firefox 3.1 beta1 and beta2.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9683
    if ( nativeSupport ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9684
        try {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9685
            nativeSupport = ( '0' === Native.stringify(0) );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9686
        } catch ( e ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9687
            nativeSupport = false;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9688
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9689
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9690
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9691
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9692
    return !nativeSupport;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9693
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9694
            "trigger": "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9695
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9696
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9697
            "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9698
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9699
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9700
    "jsonp": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9701
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9702
            "get",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9703
            "oop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9704
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9705
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9706
    "jsonp-url": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9707
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9708
            "jsonp"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9709
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9710
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9711
    "lazy-model-list": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9712
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9713
            "model-list"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9714
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9715
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9716
    "loader": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9717
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9718
            "loader-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9719
            "loader-rollup",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9720
            "loader-yui3"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9721
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9722
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9723
    "loader-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9724
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9725
            "get",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9726
            "features"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9727
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9728
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9729
    "loader-rollup": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9730
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9731
            "loader-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9732
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9733
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9734
    "loader-yui3": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9735
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9736
            "loader-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9737
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9738
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9739
    "matrix": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9740
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9741
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9742
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9743
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9744
    "model": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9745
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9746
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9747
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9748
            "json-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9749
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9750
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9751
    "model-list": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9752
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9753
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9754
            "array-invoke",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9755
            "arraylist",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9756
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9757
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9758
            "json-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9759
            "model"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9760
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9761
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9762
    "model-sync-local": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9763
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9764
            "model",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9765
            "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9766
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9767
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9768
    "model-sync-rest": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9769
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9770
            "model",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9771
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9772
            "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9773
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9774
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9775
    "node": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9776
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9777
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9778
            "node-event-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9779
            "node-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9780
            "node-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9781
            "node-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9782
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9783
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9784
    "node-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9785
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9786
            "event-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9787
            "node-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9788
            "dom-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9789
            "dom-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9790
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9791
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9792
    "node-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9793
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9794
            "dom-core",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9795
            "selector"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9796
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9797
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9798
    "node-event-delegate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9799
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9800
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9801
            "event-delegate"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9802
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9803
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9804
    "node-event-html5": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9805
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9806
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9807
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9808
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9809
    "node-event-simulate": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9810
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9811
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9812
            "event-simulate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9813
            "gesture-simulate"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9814
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9815
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9816
    "node-flick": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9817
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9818
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9819
            "transition",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9820
            "event-flick",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9821
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9822
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9823
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9824
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9825
    "node-focusmanager": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9826
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9827
            "attribute",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9828
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9829
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9830
            "node-event-simulate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9831
            "event-key",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9832
            "event-focus"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9833
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9834
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9835
    "node-load": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9836
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9837
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9838
            "io-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9839
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9840
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9841
    "node-menunav": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9842
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9843
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9844
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9845
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9846
            "node-focusmanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9847
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9848
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9849
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9850
    "node-pluginhost": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9851
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9852
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9853
            "pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9854
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9855
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9856
    "node-screen": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9857
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9858
            "dom-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9859
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9860
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9861
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9862
    "node-scroll-info": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9863
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9864
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9865
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9866
            "event-resize",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9867
            "node-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9868
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9869
            "selector"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9870
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9871
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9872
    "node-style": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9873
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9874
            "dom-style",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9875
            "node-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9876
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9877
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9878
    "oop": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9879
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9880
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9881
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9882
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9883
    "overlay": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9884
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9885
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9886
            "widget-stdmod",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9887
            "widget-position",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9888
            "widget-position-align",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9889
            "widget-stack",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9890
            "widget-position-constrain"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9891
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9892
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9893
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9894
    "paginator": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9895
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9896
            "paginator-core"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9897
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9898
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9899
    "paginator-core": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9900
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9901
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9902
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9903
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9904
    "paginator-url": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9905
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9906
            "paginator"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9907
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9908
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9909
    "panel": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9910
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9911
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9912
            "widget-autohide",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9913
            "widget-buttons",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9914
            "widget-modality",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9915
            "widget-position",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9916
            "widget-position-align",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9917
            "widget-position-constrain",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9918
            "widget-stack",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9919
            "widget-stdmod"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9920
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9921
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9922
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9923
    "parallel": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9924
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9925
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9926
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9927
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9928
    "pjax": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9929
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9930
            "pjax-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9931
            "pjax-content"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9932
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9933
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9934
    "pjax-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9935
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9936
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9937
            "node-event-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9938
            "router"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9939
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9940
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9941
    "pjax-content": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9942
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9943
            "io-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9944
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9945
            "router"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9946
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9947
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9948
    "pjax-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9949
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9950
            "node-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9951
            "pjax",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9952
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9953
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9954
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9955
    "plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9956
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9957
            "base-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9958
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9959
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9960
    "pluginhost": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9961
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9962
            "pluginhost-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9963
            "pluginhost-config"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9964
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9965
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9966
    "pluginhost-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9967
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9968
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9969
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9970
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9971
    "pluginhost-config": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9972
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9973
            "pluginhost-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9974
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9975
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9976
    "promise": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9977
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9978
            "timers"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9979
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9980
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9981
    "querystring": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9982
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9983
            "querystring-parse",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9984
            "querystring-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9985
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9986
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9987
    "querystring-parse": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9988
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9989
            "yui-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9990
            "array-extras"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9991
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9992
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9993
    "querystring-parse-simple": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9994
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9995
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9996
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9997
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9998
    "querystring-stringify": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
  9999
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10000
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10001
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10002
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10003
    "querystring-stringify-simple": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10004
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10005
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10006
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10007
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10008
    "queue-promote": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10009
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10010
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10011
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10012
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10013
    "range-slider": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10014
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10015
            "slider-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10016
            "slider-value-range",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10017
            "clickable-rail"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10018
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10019
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10020
    "recordset": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10021
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10022
            "recordset-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10023
            "recordset-sort",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10024
            "recordset-filter",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10025
            "recordset-indexer"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10026
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10027
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10028
    "recordset-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10029
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10030
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10031
            "arraylist"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10032
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10033
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10034
    "recordset-filter": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10035
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10036
            "recordset-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10037
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10038
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10039
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10040
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10041
    "recordset-indexer": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10042
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10043
            "recordset-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10044
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10045
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10046
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10047
    "recordset-sort": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10048
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10049
            "arraysort",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10050
            "recordset-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10051
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10052
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10053
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10054
    "resize": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10055
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10056
            "resize-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10057
            "resize-proxy",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10058
            "resize-constrain"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10059
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10060
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10061
    "resize-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10062
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10063
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10064
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10065
            "event",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10066
            "oop",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10067
            "dd-drag",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10068
            "dd-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10069
            "dd-drop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10070
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10071
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10072
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10073
    "resize-constrain": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10074
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10075
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10076
            "resize-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10077
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10078
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10079
    "resize-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10080
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10081
            "resize-constrain"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10082
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10083
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10084
            "resize-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10085
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10086
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10087
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10088
    "resize-proxy": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10089
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10090
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10091
            "resize-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10092
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10093
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10094
    "router": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10095
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10096
            "querystring-parse"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10097
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10098
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10099
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10100
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10101
            "history"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10102
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10103
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10104
    "scrollview": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10105
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10106
            "scrollview-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10107
            "scrollview-scrollbars"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10108
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10109
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10110
    "scrollview-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10111
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10112
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10113
            "event-gestures",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10114
            "event-mousewheel",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10115
            "transition"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10116
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10117
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10118
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10119
    "scrollview-base-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10120
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10121
            "name": "scrollview-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10122
            "trigger": "scrollview-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10123
            "ua": "ie"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10124
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10125
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10126
            "scrollview-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10127
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10128
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10129
    "scrollview-list": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10130
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10131
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10132
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10133
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10134
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10135
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10136
    "scrollview-paginator": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10137
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10138
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10139
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10140
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10141
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10142
    "scrollview-scrollbars": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10143
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10144
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10145
            "transition",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10146
            "plugin"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10147
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10148
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10149
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10150
    "selector": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10151
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10152
            "selector-native"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10153
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10154
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10155
    "selector-css2": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10156
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10157
            "name": "selector-css2",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10158
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10159
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10160
        ret = DOCUMENT && !('querySelectorAll' in DOCUMENT);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10161
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10162
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10163
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10164
            "trigger": "selector"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10165
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10166
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10167
            "selector-native"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10168
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10169
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10170
    "selector-css3": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10171
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10172
            "selector-native",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10173
            "selector-css2"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10174
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10175
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10176
    "selector-native": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10177
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10178
            "dom-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10179
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10180
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10181
    "series-area": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10182
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10183
            "series-cartesian",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10184
            "series-fill-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10185
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10186
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10187
    "series-area-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10188
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10189
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10190
            "series-area"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10191
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10192
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10193
    "series-areaspline": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10194
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10195
            "series-area",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10196
            "series-curve-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10197
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10198
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10199
    "series-areaspline-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10200
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10201
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10202
            "series-areaspline"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10203
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10204
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10205
    "series-bar": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10206
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10207
            "series-marker",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10208
            "series-histogram-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10209
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10210
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10211
    "series-bar-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10212
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10213
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10214
            "series-bar"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10215
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10216
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10217
    "series-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10218
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10219
            "graphics",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10220
            "axis-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10221
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10222
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10223
    "series-candlestick": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10224
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10225
            "series-range"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10226
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10227
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10228
    "series-cartesian": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10229
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10230
            "series-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10231
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10232
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10233
    "series-column": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10234
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10235
            "series-marker",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10236
            "series-histogram-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10237
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10238
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10239
    "series-column-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10240
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10241
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10242
            "series-column"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10243
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10244
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10245
    "series-combo": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10246
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10247
            "series-cartesian",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10248
            "series-line-util",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10249
            "series-plot-util",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10250
            "series-fill-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10251
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10252
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10253
    "series-combo-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10254
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10255
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10256
            "series-combo"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10257
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10258
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10259
    "series-combospline": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10260
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10261
            "series-combo",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10262
            "series-curve-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10263
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10264
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10265
    "series-combospline-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10266
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10267
            "series-combo-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10268
            "series-curve-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10269
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10270
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10271
    "series-curve-util": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10272
    "series-fill-util": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10273
    "series-histogram-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10274
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10275
            "series-cartesian",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10276
            "series-plot-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10277
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10278
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10279
    "series-line": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10280
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10281
            "series-cartesian",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10282
            "series-line-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10283
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10284
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10285
    "series-line-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10286
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10287
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10288
            "series-line"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10289
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10290
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10291
    "series-line-util": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10292
    "series-marker": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10293
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10294
            "series-cartesian",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10295
            "series-plot-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10296
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10297
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10298
    "series-marker-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10299
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10300
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10301
            "series-marker"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10302
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10303
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10304
    "series-ohlc": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10305
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10306
            "series-range"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10307
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10308
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10309
    "series-pie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10310
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10311
            "series-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10312
            "series-plot-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10313
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10314
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10315
    "series-plot-util": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10316
    "series-range": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10317
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10318
            "series-cartesian"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10319
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10320
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10321
    "series-spline": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10322
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10323
            "series-line",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10324
            "series-curve-util"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10325
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10326
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10327
    "series-spline-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10328
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10329
            "series-stacked",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10330
            "series-spline"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10331
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10332
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10333
    "series-stacked": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10334
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10335
            "axis-stacked"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10336
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10337
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10338
    "shim-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10339
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10340
            "node-style",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10341
            "node-pluginhost"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10342
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10343
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10344
    "slider": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10345
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10346
            "slider-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10347
            "slider-value-range",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10348
            "clickable-rail",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10349
            "range-slider"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10350
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10351
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10352
    "slider-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10353
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10354
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10355
            "dd-constrain",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10356
            "event-key"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10357
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10358
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10359
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10360
    "slider-value-range": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10361
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10362
            "slider-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10363
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10364
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10365
    "sortable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10366
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10367
            "dd-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10368
            "dd-drop-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10369
            "dd-proxy"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10370
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10371
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10372
    "sortable-scroll": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10373
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10374
            "dd-scroll",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10375
            "sortable"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10376
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10377
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10378
    "stylesheet": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10379
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10380
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10381
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10382
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10383
    "substitute": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10384
        "optional": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10385
            "dump"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10386
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10387
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10388
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10389
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10390
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10391
    "swf": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10392
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10393
            "event-custom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10394
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10395
            "swfdetect",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10396
            "escape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10397
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10398
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10399
    "swfdetect": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10400
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10401
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10402
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10403
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10404
    "tabview": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10405
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10406
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10407
            "widget-parent",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10408
            "widget-child",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10409
            "tabview-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10410
            "node-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10411
            "node-focusmanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10412
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10413
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10414
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10415
    "tabview-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10416
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10417
            "node-event-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10418
            "classnamemanager"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10419
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10420
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10421
    "tabview-plugin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10422
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10423
            "tabview-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10424
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10425
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10426
    "template": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10427
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10428
            "template-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10429
            "template-micro"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10430
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10431
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10432
    "template-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10433
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10434
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10435
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10436
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10437
    "template-micro": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10438
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10439
            "escape"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10440
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10441
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10442
    "test": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10443
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10444
            "event-simulate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10445
            "event-custom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10446
            "json-stringify"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10447
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10448
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10449
    "test-console": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10450
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10451
            "console-filters",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10452
            "test",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10453
            "array-extras"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10454
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10455
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10456
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10457
    "text": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10458
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10459
            "text-accentfold",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10460
            "text-wordbreak"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10461
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10462
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10463
    "text-accentfold": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10464
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10465
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10466
            "text-data-accentfold"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10467
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10468
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10469
    "text-data-accentfold": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10470
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10471
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10472
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10473
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10474
    "text-data-wordbreak": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10475
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10476
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10477
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10478
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10479
    "text-wordbreak": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10480
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10481
            "array-extras",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10482
            "text-data-wordbreak"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10483
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10484
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10485
    "timers": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10486
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10487
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10488
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10489
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10490
    "transition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10491
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10492
            "node-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10493
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10494
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10495
    "transition-timer": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10496
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10497
            "name": "transition-timer",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10498
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10499
    var DOCUMENT = Y.config.doc,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10500
        node = (DOCUMENT) ? DOCUMENT.documentElement: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10501
        ret = true;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10502
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10503
    if (node && node.style) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10504
        ret = !('MozTransition' in node.style || 'WebkitTransition' in node.style || 'transition' in node.style);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10505
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10506
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10507
    return ret;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10508
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10509
            "trigger": "transition"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10510
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10511
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10512
            "transition"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10513
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10514
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10515
    "tree": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10516
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10517
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10518
            "tree-node"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10519
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10520
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10521
    "tree-labelable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10522
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10523
            "tree"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10524
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10525
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10526
    "tree-lazy": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10527
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10528
            "base-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10529
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10530
            "tree"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10531
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10532
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10533
    "tree-node": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10534
    "tree-openable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10535
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10536
            "tree"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10537
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10538
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10539
    "tree-selectable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10540
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10541
            "tree"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10542
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10543
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10544
    "tree-sortable": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10545
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10546
            "tree"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10547
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10548
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10549
    "uploader": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10550
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10551
            "uploader-html5",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10552
            "uploader-flash"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10553
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10554
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10555
    "uploader-flash": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10556
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10557
            "swfdetect",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10558
            "escape",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10559
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10560
            "base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10561
            "cssbutton",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10562
            "node",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10563
            "event-custom",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10564
            "uploader-queue"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10565
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10566
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10567
    "uploader-html5": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10568
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10569
            "widget",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10570
            "node-event-simulate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10571
            "file-html5",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10572
            "uploader-queue"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10573
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10574
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10575
    "uploader-queue": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10576
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10577
            "base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10578
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10579
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10580
    "view": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10581
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10582
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10583
            "node-event-delegate"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10584
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10585
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10586
    "view-node-map": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10587
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10588
            "view"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10589
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10590
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10591
    "widget": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10592
        "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10593
            "widget-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10594
            "widget-htmlparser",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10595
            "widget-skin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10596
            "widget-uievents"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10597
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10598
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10599
    "widget-anim": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10600
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10601
            "anim-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10602
            "plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10603
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10604
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10605
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10606
    "widget-autohide": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10607
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10608
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10609
            "event-key",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10610
            "event-outside",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10611
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10612
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10613
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10614
    "widget-base": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10615
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10616
            "attribute",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10617
            "base-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10618
            "base-pluginhost",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10619
            "classnamemanager",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10620
            "event-focus",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10621
            "node-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10622
            "node-style"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10623
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10624
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10625
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10626
    "widget-base-ie": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10627
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10628
            "name": "widget-base-ie",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10629
            "trigger": "widget-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10630
            "ua": "ie"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10631
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10632
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10633
            "widget-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10634
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10635
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10636
    "widget-buttons": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10637
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10638
            "button-plugin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10639
            "cssbutton",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10640
            "widget-stdmod"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10641
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10642
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10643
    "widget-child": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10644
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10645
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10646
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10647
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10648
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10649
    "widget-htmlparser": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10650
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10651
            "widget-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10652
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10653
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10654
    "widget-modality": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10655
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10656
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10657
            "event-outside",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10658
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10659
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10660
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10661
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10662
    "widget-parent": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10663
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10664
            "arraylist",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10665
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10666
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10667
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10668
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10669
    "widget-position": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10670
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10671
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10672
            "node-screen",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10673
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10674
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10675
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10676
    "widget-position-align": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10677
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10678
            "widget-position"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10679
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10680
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10681
    "widget-position-constrain": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10682
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10683
            "widget-position"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10684
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10685
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10686
    "widget-skin": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10687
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10688
            "widget-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10689
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10690
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10691
    "widget-stack": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10692
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10693
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10694
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10695
        ],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10696
        "skinnable": true
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10697
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10698
    "widget-stdmod": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10699
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10700
            "base-build",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10701
            "widget"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10702
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10703
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10704
    "widget-uievents": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10705
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10706
            "node-event-delegate",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10707
            "widget-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10708
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10709
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10710
    "yql": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10711
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10712
            "oop"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10713
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10714
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10715
    "yql-jsonp": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10716
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10717
            "name": "yql-jsonp",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10718
            "test": function (Y) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10719
    /* Only load the JSONP module when not in nodejs or winjs
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10720
    TODO Make the winjs module a CORS module
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10721
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10722
    return (!Y.UA.nodejs && !Y.UA.winjs);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10723
},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10724
            "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10725
            "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10726
        },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10727
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10728
            "jsonp",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10729
            "jsonp-url"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10730
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10731
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10732
    "yql-nodejs": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10733
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10734
            "name": "yql-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10735
            "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10736
            "ua": "nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10737
            "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10738
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10739
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10740
    "yql-winjs": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10741
        "condition": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10742
            "name": "yql-winjs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10743
            "trigger": "yql",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10744
            "ua": "winjs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10745
            "when": "after"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10746
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10747
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10748
    "yui": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10749
    "yui-base": {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10750
    "yui-later": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10751
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10752
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10753
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10754
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10755
    "yui-log": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10756
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10757
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10758
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10759
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10760
    "yui-throttle": {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10761
        "requires": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10762
            "yui-base"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10763
        ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10764
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10765
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10766
YUI.Env[Y.version].md5 = '8e471689779fc84718f6dad481790b59';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10767
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10768
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10769
}, '@VERSION@', {"requires": ["loader-base"]});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10770
YUI.add('yui', function (Y, NAME) {}, '@VERSION@', {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10771
    "use": [
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10772
        "get",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10773
        "features",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10774
        "intl-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10775
        "yui-log",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10776
        "yui-log-nodejs",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10777
        "yui-later",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10778
        "loader-base",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10779
        "loader-rollup",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10780
        "loader-yui3"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10781
    ]
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
 10782
});