src/cm/media/js/lib/yui/yui3.0.0/build/loader/loader.js
author raph
Mon, 23 Nov 2009 15:14:29 +0100
changeset 0 40c8f766c9b8
permissions -rw-r--r--
import from internal svn r 4007
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('loader', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * Loader dynamically loads script and css files.  It includes the dependency
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 * info for the version of the library in use, and will automatically pull in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * dependencies for the modules requested.  It supports rollup files and will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 * automatically use these when appropriate in order to minimize the number of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
 * http connections required to load all of the dependencies.  It can load the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
 * files from the Yahoo! CDN, and it can utilize the combo service provided on
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * this network to reduce the number of http connections required to download 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 * YUI files.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
 * @module loader
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
 * Loader dynamically loads script and css files.  It includes the dependency
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
 * info for the version of the library in use, and will automatically pull in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
 * dependencies for the modules requested.  It supports rollup files and will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
 * automatically use these when appropriate in order to minimize the number of
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
 * http connections required to load all of the dependencies.  It can load the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
 * files from the Yahoo! CDN, and it can utilize the combo service provided on
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
 * this network to reduce the number of http connections required to download 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
 * YUI files.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
 * While the loader can be instantiated by the end user, it normally is not.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
 * @see YUI.use for the normal use case.  The use function automatically will
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
 * pull in missing dependencies.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
 * @class Loader
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
 * @constructor
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
 * @param o an optional set of configuration options.  Valid options:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
 * <ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
 *  <li>base:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
 *  The base dir</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
 *  <li>secureBase:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
 *  The secure base dir (not implemented)</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
 *  <li>comboBase:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
 *  The YUI combo service base dir. Ex: http://yui.yahooapis.com/combo?</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
 *  <li>root:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
 *  The root path to prepend to module names for the combo service. Ex: 2.5.2/build/</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
 *  <li>filter:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
 *  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
 * A filter to apply to result urls.  This filter will modify the default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
 * path for all modules.  The default path for the YUI library is the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
 * minified version of the files (e.g., event-min.js).  The filter property
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
 * can be a predefined filter or a custom filter.  The valid predefined 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
 * filters are:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
 * <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
 *  <dt>DEBUG</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
 *  <dd>Selects the debug versions of the library (e.g., event-debug.js).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
 *      This option will automatically include the Logger widget</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
 *  <dt>RAW</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
 *  <dd>Selects the non-minified version of the library (e.g., event.js).</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
 * </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
 * You can also define a custom filter, which must be an object literal 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
 * containing a search expression and a replace string:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
 * <pre>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
 *  myFilter: &#123; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
 *      'searchExp': "-min\\.js", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
 *      'replaceStr': "-debug.js"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
 *  &#125;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
 * </pre>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
 *  </li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    74
 *  <li>filters: per-component filter specification.  If specified for a given component, this overrides the filter config</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    75
 *  <li>combine:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    76
 *  Use the YUI combo service to reduce the number of http connections required to load your dependencies</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    77
 *  <li>ignore:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    78
 *  A list of modules that should never be dynamically loaded</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    79
 *  <li>force:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    80
 *  A list of modules that should always be loaded when required, even if already present on the page</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    81
 *  <li>insertBefore:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    82
 *  Node or id for a node that should be used as the insertion point for new nodes</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    83
 *  <li>charset:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    84
 *  charset for dynamic nodes (deprecated, use jsAttributes or cssAttributes)</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    85
 *  <li>jsAttributes: object literal containing attributes to add to script nodes</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    86
 *  <li>cssAttributes: object literal containing attributes to add to link nodes</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    87
 *  <li>timeout:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    88
 *  number of milliseconds before a timeout occurs when dynamically loading nodes.  in not set, there is no timeout</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    89
 *  <li>context:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    90
 *  execution context for all callbacks</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    91
 *  <li>onSuccess:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    92
 *  callback for the 'success' event</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    93
 *  <li>onFailure: callback for the 'failure' event</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    94
 *  <li>onCSS: callback for the 'CSSComplete' event.  When loading YUI components with CSS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    95
 *  the CSS is loaded first, then the script.  This provides a moment you can tie into to improve
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    96
 *  the presentation of the page while the script is loading.</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    97
 *  <li>onTimeout:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    98
 *  callback for the 'timeout' event</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    99
 *  <li>onProgress:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   100
 *  callback executed each time a script or css file is loaded</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   101
 *  <li>modules:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   102
 *  A list of module definitions.  See Loader.addModule for the supported module metadata</li>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   103
 * </ul>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   104
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   105
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   106
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   107
 * Global loader queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   108
 * @property _loaderQueue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   109
 * @type Queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   110
 * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   111
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   112
YUI.Env._loaderQueue = YUI.Env._loaderQueue || new Y.Queue();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   113
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   114
var NOT_FOUND = {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   115
    GLOBAL_ENV = YUI.Env,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   116
    GLOBAL_LOADED,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   117
    BASE = 'base', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   118
    CSS = 'css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   119
    JS = 'js',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   120
    CSSRESET = 'cssreset',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   121
    CSSFONTS = 'cssfonts',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   122
    CSSGRIDS = 'cssgrids',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   123
    CSSBASE  = 'cssbase',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   124
    CSS_AFTER = [CSSRESET, CSSFONTS, CSSGRIDS, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   125
                 'cssreset-context', 'cssfonts-context', 'cssgrids-context'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   126
    YUI_CSS = ['reset', 'fonts', 'grids', BASE],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   127
    VERSION = Y.version,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   128
    ROOT = VERSION + '/build/',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   129
    CONTEXT = '-context',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   130
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   131
    ANIMBASE = 'anim-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   132
	ATTRIBUTE = 'attribute',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   133
    ATTRIBUTEBASE = ATTRIBUTE + '-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   134
    BASEBASE = 'base-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   135
    DDDRAG = 'dd-drag',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   136
    DOM = 'dom',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   137
    DATASCHEMABASE = 'dataschema-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   138
    DATASOURCELOCAL = 'datasource-local',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   139
    DOMBASE = 'dom-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   140
    DOMSTYLE = 'dom-style',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   141
    DOMSCREEN = 'dom-screen',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   142
    DUMP = 'dump',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   143
    GET = 'get',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   144
    EVENTBASE = 'event-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   145
    EVENTCUSTOM = 'event-custom',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   146
    EVENTCUSTOMBASE = 'event-custom-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   147
    IOBASE = 'io-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   148
    NODE = 'node',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   149
    NODEBASE = 'node-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   150
    NODESTYLE = 'node-style',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   151
    NODESCREEN = 'node-screen',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   152
    OOP = 'oop',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   153
    PLUGINHOST = 'pluginhost',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   154
    SELECTORCSS2 = 'selector-css2',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   155
    SUBSTITUTE = 'substitute',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   156
    WIDGET = 'widget',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   157
    WIDGETPOSITION = 'widget-position',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   158
    YUIBASE = 'yui-base',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   159
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   160
	PLUGIN = 'plugin',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   161
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   162
    META = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   164
    version: VERSION,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   165
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   166
    root: ROOT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   167
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   168
    base: 'http://yui.yahooapis.com/' + ROOT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   169
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   170
    comboBase: 'http://yui.yahooapis.com/combo?',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   171
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   172
    skin: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   173
        defaultSkin: 'sam',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   174
        base: 'assets/skins/',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   175
        path: 'skin.css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   176
        after: CSS_AFTER
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   177
        //rollup: 3
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   178
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   179
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   180
    modules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   181
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   182
       dom: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   183
            requires: [OOP],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   184
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   185
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   186
                'dom-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   187
                    requires: [OOP]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   188
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   189
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   190
                'dom-style': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   191
                    requires: [DOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   192
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   193
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   194
                'dom-screen': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   195
                    requires: [DOMBASE, DOMSTYLE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   196
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   197
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   198
                'selector-native': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   199
                    requires: [DOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   200
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   201
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   202
                'selector-css2': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   203
                    requires: ['selector-native']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   204
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   205
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   206
                'selector': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   207
                    requires: [DOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   208
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   209
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   210
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   211
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   212
            plugins: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   213
                'selector-css3': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   214
                    requires: [SELECTORCSS2]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   215
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   216
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   217
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   218
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   219
        node: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   220
            requires: [DOM, EVENTBASE],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   221
            // expound: EVENT,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   222
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   223
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   224
                'node-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   225
                    requires: [DOMBASE, SELECTORCSS2, EVENTBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   226
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   227
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   228
                'node-style': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   229
                    requires: [DOMSTYLE, NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   230
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   231
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   232
                'node-screen': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   233
                    requires: [DOMSCREEN, NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   234
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   235
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   236
                'node-pluginhost': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   237
                    requires: [NODEBASE, PLUGINHOST]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   238
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   239
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   240
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   241
                'node-event-delegate': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   242
                    requires: [NODEBASE, 'event-delegate']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   243
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   244
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   245
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   246
            plugins: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   247
                'node-event-simulate': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   248
                    requires: [NODEBASE, 'event-simulate']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   249
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   250
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   251
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   252
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   253
        anim: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   254
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   255
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   256
                'anim-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   257
                    requires: [BASEBASE, NODESTYLE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   258
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   259
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   260
                'anim-color': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   261
                    requires: [ANIMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   262
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   263
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   264
                'anim-easing': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   265
                    requires: [ANIMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   266
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   267
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   268
                'anim-scroll': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   269
                    requires: [ANIMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   270
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   271
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   272
                'anim-xy': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   273
                    requires: [ANIMBASE, NODESCREEN]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   274
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   275
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   276
                'anim-curve': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   277
                    requires: ['anim-xy']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   278
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   279
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   280
                'anim-node-plugin': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   281
                     requires: ['node-pluginhost', ANIMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   282
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   283
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   284
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   285
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   286
        attribute: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   287
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   288
                'attribute-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   289
                    requires: [EVENTCUSTOM]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   290
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   291
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   292
                'attribute-complex': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   293
                    requires: [ATTRIBUTEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   294
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   295
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   296
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   297
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   298
        base: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   299
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   300
                'base-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   301
                    requires: [ATTRIBUTEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   302
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   303
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   304
                'base-build': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   305
                    requires: [BASEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   306
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   307
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   308
                'base-pluginhost': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   309
                    requires: [BASEBASE, PLUGINHOST]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   310
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   311
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   312
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   313
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   314
        cache: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   315
            requires: [PLUGIN]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   316
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   317
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   318
        compat: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   319
            requires: [NODE, DUMP, SUBSTITUTE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   320
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   321
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   322
        classnamemanager: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   323
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   324
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   325
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   326
        collection: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   327
            requires: [OOP]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   328
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   329
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   330
        console: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   331
            requires: ['yui-log', WIDGET, SUBSTITUTE],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   332
            skinnable: true,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   333
            plugins: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   334
                'console-filters': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   335
                    requires: [PLUGIN, 'console'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   336
                    skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   337
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   338
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   339
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   340
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   341
        cookie: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   342
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   343
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   344
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   345
        dataschema:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   346
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   347
                'dataschema-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   348
                    requires: [BASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   349
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   350
                'dataschema-array': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   351
                    requires: [DATASCHEMABASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   352
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   353
                'dataschema-json': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   354
                    requires: [DATASCHEMABASE, 'json']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   355
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   356
                'dataschema-text': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   357
                    requires: [DATASCHEMABASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   358
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   359
                'dataschema-xml': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   360
                    requires: [DATASCHEMABASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   361
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   362
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   363
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   364
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   365
        datasource:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   366
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   367
                'datasource-local': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   368
                    requires: [BASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   369
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   370
                'datasource-arrayschema': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   371
                    requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-array']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   372
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   373
                'datasource-cache': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   374
                    requires: [DATASOURCELOCAL, 'cache']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   375
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   376
                'datasource-function': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   377
                    requires: [DATASOURCELOCAL]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   378
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   379
                'datasource-jsonschema': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   380
                    requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-json']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   381
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   382
                'datasource-polling': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   383
                    requires: [DATASOURCELOCAL]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   384
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   385
                'datasource-get': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   386
                    requires: [DATASOURCELOCAL, GET]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   387
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   388
                'datasource-textschema': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   389
                    requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-text']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   390
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   391
                'datasource-io': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   392
                    requires: [DATASOURCELOCAL, IOBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   393
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   394
                'datasource-xmlschema': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   395
                    requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-xml']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   396
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   397
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   398
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   399
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   400
        datatype:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   401
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   402
                'datatype-date': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   403
                    requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   404
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   405
                'datatype-number': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   406
                    requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   407
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   408
                'datatype-xml': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   409
                    requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   410
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   411
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   412
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   413
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   414
        dd:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   415
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   416
                'dd-ddm-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   417
                    requires: [NODE, BASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   418
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   419
                'dd-ddm':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   420
                    requires: ['dd-ddm-base', 'event-resize']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   421
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   422
                'dd-ddm-drop':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   423
                    requires: ['dd-ddm']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   424
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   425
                'dd-drag':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   426
                    requires: ['dd-ddm-base']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   427
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   428
                'dd-drop':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   429
                    requires: ['dd-ddm-drop']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   430
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   431
                'dd-proxy':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   432
                    requires: [DDDRAG]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   433
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   434
                'dd-constrain':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   435
                    requires: [DDDRAG]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   436
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   437
                'dd-scroll':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   438
                    requires: [DDDRAG]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   439
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   440
                'dd-plugin':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   441
                    requires: [DDDRAG],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   442
                    optional: ['dd-constrain', 'dd-proxy']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   443
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   444
                'dd-drop-plugin':{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   445
                    requires: ['dd-drop']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   446
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   447
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   448
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   449
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   450
        dump: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   451
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   452
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   453
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   454
        event: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   455
            expound: NODEBASE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   456
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   457
                'event-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   458
                    expound: NODEBASE,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   459
                    requires: [EVENTCUSTOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   460
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   461
                'event-delegate': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   462
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   463
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   464
                'event-focus': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   465
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   466
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   467
                'event-key': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   468
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   469
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   470
                'event-mouseenter': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   471
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   472
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   473
                'event-mousewheel': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   474
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   475
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   476
                'event-resize': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   477
                    requires: [NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   478
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   479
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   480
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   481
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   482
        'event-custom': { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   483
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   484
                'event-custom-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   485
                    requires: [OOP, 'yui-later']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   486
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   487
                'event-custom-complex': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   488
                    requires: [EVENTCUSTOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   489
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   490
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   491
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   492
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   493
        'event-simulate': { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   494
            requires: [EVENTBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   495
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   496
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   497
        'node-focusmanager': { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   498
            requires: [ATTRIBUTE, NODE, PLUGIN, 'node-event-simulate', 'event-key', 'event-focus']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   499
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   500
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   501
        history: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   502
            requires: [NODE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   503
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   504
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   505
        imageloader: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   506
            requires: [BASEBASE, NODESTYLE, NODESCREEN]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   507
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   508
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   509
        io:{
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   510
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   511
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   512
                'io-base': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   513
                    requires: [EVENTCUSTOMBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   514
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   516
                'io-xdr': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   517
                    requires: [IOBASE, 'datatype-xml']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   518
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   519
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   520
                'io-form': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   521
                    requires: [IOBASE, NODEBASE, NODESTYLE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   522
                }, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   523
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   524
                'io-upload-iframe': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   525
                    requires: [IOBASE, NODEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   526
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   527
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   528
                'io-queue': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   529
                    requires: [IOBASE, 'queue-promote']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   530
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   531
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   532
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   533
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   534
        json: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   535
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   536
                'json-parse': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   537
                    requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   538
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   539
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   540
                'json-stringify': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   541
                    requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   542
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   543
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   544
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   545
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   546
        loader: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   547
            requires: [GET]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   548
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   549
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   550
        'node-menunav': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   551
            requires: [NODE, 'classnamemanager', PLUGIN, 'node-focusmanager'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   552
            skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   553
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   554
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   555
        oop: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   556
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   557
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   558
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   559
        overlay: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   560
            requires: [WIDGET, WIDGETPOSITION, 'widget-position-ext', 'widget-stack', 'widget-stdmod'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   561
            skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   562
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   563
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   564
        plugin: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   565
            requires: [BASEBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   566
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   567
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   568
        pluginhost: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   569
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   570
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   571
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   572
        profiler: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   573
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   574
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   575
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   576
        'queue-promote': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   577
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   578
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   579
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   580
        // deprecated package, replaced with async-queue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   581
        'queue-run': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   582
            requires: [EVENTCUSTOM],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   583
            path: 'async-queue/async-queue-min.js'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   584
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   585
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   586
        'async-queue': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   587
            requires: [EVENTCUSTOM],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   588
            supersedes: ['queue-run']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   589
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   590
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   591
        slider: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   592
            requires: [WIDGET, 'dd-constrain'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   593
            skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   594
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   595
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   596
        stylesheet: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   597
            requires: [YUIBASE]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   598
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   599
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   600
        substitute: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   601
            optional: [DUMP]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   602
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   603
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   604
        widget: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   605
            requires: [ATTRIBUTE, 'event-focus', BASE, NODE, 'classnamemanager'],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   606
            plugins: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   607
                'widget-position': { },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   608
                'widget-position-ext': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   609
                    requires: [WIDGETPOSITION]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   610
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   611
                'widget-stack': {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   612
                    skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   613
                },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   614
                'widget-stdmod': { }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   615
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   616
            skinnable: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   617
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   618
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   619
        yui: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   620
            submodules: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   621
                'yui-base': {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   622
                get: {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   623
                'yui-log': {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   624
                'yui-later': {}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   625
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   626
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   627
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   628
        test: {                                                                                                                                                        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   629
            requires: [SUBSTITUTE, NODE, 'json', 'event-simulate']                                                                                                                     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   630
        }  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   631
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   632
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   633
},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   634
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   635
_path = Y.cached(function(dir, file, type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   636
    return dir + '/' + file + '-min.' + (type || CSS);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   637
}),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   638
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   639
_queue = YUI.Env._loaderQueue,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   640
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   641
mods  = META.modules, i, bname, mname, contextname,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   642
L     = Y.Lang;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   643
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   644
// Create the metadata for both the regular and context-aware
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   645
// versions of the YUI CSS foundation.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   646
for (i=0; i<YUI_CSS.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   647
    bname = YUI_CSS[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   648
    mname = CSS + bname;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   649
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   650
    mods[mname] = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   651
        type: CSS,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   652
        path: _path(mname, bname)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   653
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   654
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   655
    // define -context module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   656
    contextname = mname + CONTEXT;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   657
    bname = bname + CONTEXT;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   658
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   659
    mods[contextname] = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   660
        type: CSS,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   661
        path: _path(mname, bname)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   662
    };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   663
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   664
    if (mname == CSSGRIDS) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   665
        mods[mname].requires = [CSSFONTS];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   666
        mods[mname].optional = [CSSRESET];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   667
        mods[contextname].requires = [CSSFONTS + CONTEXT];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   668
        mods[contextname].optional = [CSSRESET + CONTEXT];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   669
    } else if (mname == CSSBASE) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   670
        mods[mname].after = CSS_AFTER;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   671
        mods[contextname].after = CSS_AFTER;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   672
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   673
}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   674
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   675
Y.Env.meta = META;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   676
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   677
GLOBAL_LOADED = GLOBAL_ENV._loaded;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   678
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   679
Y.Loader = function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   681
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   682
     * Internal callback to handle multiple internal insert() calls
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   683
     * so that css is inserted prior to js
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   684
     * @property _internalCallback
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   685
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   686
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   687
    // this._internalCallback = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   688
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   689
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   690
     * Callback that will be executed when the loader is finished
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   691
     * with an insert
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   692
     * @method onSuccess
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   693
     * @type function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   694
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   695
    // this.onSuccess = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   696
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   697
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   698
     * Callback that will be executed if there is a failure
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   699
     * @method onFailure
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   700
     * @type function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   701
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   702
    // this.onFailure = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   703
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   704
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   705
     * Callback for the 'CSSComplete' event.  When loading YUI components with CSS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   706
     * the CSS is loaded first, then the script.  This provides a moment you can tie into to improve
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   707
     * the presentation of the page while the script is loading.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   708
     * @method onCSS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   709
     * @type function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   710
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   711
    // this.onCSS = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   712
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   713
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   714
     * Callback executed each time a script or css file is loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   715
     * @method onProgress
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   716
     * @type function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   717
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   718
    // this.onProgress = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   719
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   720
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   721
     * Callback that will be executed if a timeout occurs
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   722
     * @method onTimeout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   723
     * @type function
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   724
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   725
    // this.onTimeout = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   726
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   727
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   728
     * The execution context for all callbacks
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   729
     * @property context
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   730
     * @default {YUI} the YUI instance
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   731
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   732
    this.context = Y;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   733
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   734
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   735
     * Data that is passed to all callbacks
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   736
     * @property data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   737
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   738
    // this.data = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   739
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   740
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   741
     * Node reference or id where new nodes should be inserted before
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   742
     * @property insertBefore
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   743
     * @type string|HTMLElement
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   744
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   745
    // this.insertBefore = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   746
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   747
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   748
     * The charset attribute for inserted nodes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   749
     * @property charset
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   750
     * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   751
     * @deprecated, use cssAttributes or jsAttributes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   752
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   753
    // this.charset = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   754
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   755
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   756
     * An object literal containing attributes to add to link nodes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   757
     * @property cssAttributes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   758
     * @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   759
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   760
    // this.cssAttributes = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   761
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   762
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   763
     * An object literal containing attributes to add to script nodes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   764
     * @property jsAttributes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   765
     * @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   766
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   767
    // this.jsAttributes = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   768
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   769
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   770
     * The base directory.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   771
     * @property base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   772
     * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   773
     * @default http://yui.yahooapis.com/[YUI VERSION]/build/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   774
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   775
    this.base = Y.Env.meta.base;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   776
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   777
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   778
     * Base path for the combo service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   779
     * @property comboBase
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   780
     * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   781
     * @default http://yui.yahooapis.com/combo?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   782
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   783
    this.comboBase = Y.Env.meta.comboBase;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   784
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   785
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   786
     * If configured, YUI JS resources will use the combo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   787
     * handler
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   788
     * @property combine
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   789
     * @type boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   790
     * @default true if a base dir isn't in the config
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   791
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   792
    this.combine = o.base && (o.base.indexOf( this.comboBase.substr(0, 20)) > -1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   793
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   794
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   795
     * Ignore modules registered on the YUI global
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   796
     * @property ignoreRegistered
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   797
     * @default false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   798
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   799
    // this.ignoreRegistered = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   800
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   801
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   802
     * Root path to prepend to module path for the combo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   803
     * service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   804
     * @property root
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   805
     * @type string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   806
     * @default [YUI VERSION]/build/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   807
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   808
    this.root = Y.Env.meta.root;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   809
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   810
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   811
     * Timeout value in milliseconds.  If set, this value will be used by
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   812
     * the get utility.  the timeout event will fire if
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   813
     * a timeout occurs.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   814
     * @property timeout
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   815
     * @type int
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   816
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   817
    this.timeout = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   818
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   819
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   820
     * A list of modules that should not be loaded, even if
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   821
     * they turn up in the dependency tree
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   822
     * @property ignore
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   823
     * @type string[]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   824
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   825
    // this.ignore = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   826
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   827
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   828
     * A list of modules that should always be loaded, even
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   829
     * if they have already been inserted into the page.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   830
     * @property force
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   831
     * @type string[]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   832
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   833
    // this.force = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   834
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   835
    this.forceMap = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   836
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   837
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   838
     * Should we allow rollups
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   839
     * @property allowRollup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   840
     * @type boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   841
     * @default true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   842
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   843
    // this.allowRollup = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   844
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   845
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   846
     * A filter to apply to result urls.  This filter will modify the default
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   847
     * path for all modules.  The default path for the YUI library is the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   848
     * minified version of the files (e.g., event-min.js).  The filter property
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   849
     * can be a predefined filter or a custom filter.  The valid predefined 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   850
     * filters are:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   851
     * <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   852
     *  <dt>DEBUG</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   853
     *  <dd>Selects the debug versions of the library (e.g., event-debug.js).
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   854
     *      This option will automatically include the Logger widget</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   855
     *  <dt>RAW</dt>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   856
     *  <dd>Selects the non-minified version of the library (e.g., event.js).</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   857
     * </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   858
     * You can also define a custom filter, which must be an object literal 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   859
     * containing a search expression and a replace string:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   860
     * <pre>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   861
     *  myFilter: &#123; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   862
     *      'searchExp': "-min\\.js", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   863
     *      'replaceStr': "-debug.js"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   864
     *  &#125;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   865
     * </pre>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   866
     * @property filter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   867
     * @type string|{searchExp: string, replaceStr: string}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   868
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   869
    // this.filter = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   870
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   871
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   872
     * per-component filter specification.  If specified for a given component, this 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   873
     * overrides the filter config.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   874
     * @property filters
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   875
     * @type object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   876
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   877
    this.filters = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   878
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   879
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   880
     * The list of requested modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   881
     * @property required
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   882
     * @type {string: boolean}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   883
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   884
    this.required = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   885
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   886
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   887
     * The library metadata
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   888
     * @property moduleInfo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   889
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   890
    // this.moduleInfo = Y.merge(Y.Env.meta.moduleInfo);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   891
    this.moduleInfo = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   892
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   893
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   894
     * Provides the information used to skin the skinnable components.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   895
     * The following skin definition would result in 'skin1' and 'skin2'
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   896
     * being loaded for calendar (if calendar was requested), and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   897
     * 'sam' for all other skinnable components:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   898
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   899
     *   <code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   900
     *   skin: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   901
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   902
     *      // The default skin, which is automatically applied if not
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   903
     *      // overriden by a component-specific skin definition.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   904
     *      // Change this in to apply a different skin globally
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   905
     *      defaultSkin: 'sam', 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   906
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   907
     *      // This is combined with the loader base property to get
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   908
     *      // the default root directory for a skin. ex:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   909
     *      // http://yui.yahooapis.com/2.3.0/build/assets/skins/sam/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   910
     *      base: 'assets/skins/',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   911
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   912
     *      // The name of the rollup css file for the skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   913
     *      path: 'skin.css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   914
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   915
     *      // The number of skinnable components requested that are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   916
     *      // required before using the rollup file rather than the
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   917
     *      // individual component css files
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   918
     *      rollup: 3,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   919
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   920
     *      // Any component-specific overrides can be specified here,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   921
     *      // making it possible to load different skins for different
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   922
     *      // components.  It is possible to load more than one skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   923
     *      // for a given component as well.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   924
     *      overrides: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   925
     *          calendar: ['skin1', 'skin2']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   926
     *      }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   927
     *   }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   928
     *   </code>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   929
     *   @property skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   930
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   931
     this.skin = Y.merge(Y.Env.meta.skin);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   932
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   933
    var defaults = Y.Env.meta.modules, i, onPage = YUI.Env.mods;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   934
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   935
    this._internal = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   936
    for (i in defaults) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   937
        if (defaults.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   938
            this.addModule(defaults[i], i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   939
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   940
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   941
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   942
    for (i in onPage) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   943
        if (onPage.hasOwnProperty(i) && !this.moduleInfo[i] && onPage[i].details) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   944
            this.addModule(onPage[i].details, i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   945
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   946
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   947
    this._internal = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   948
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   949
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   950
     * List of rollup files found in the library metadata
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   951
     * @property rollups
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   952
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   953
    // this.rollups = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   954
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   955
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   956
     * Whether or not to load optional dependencies for 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   957
     * the requested modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   958
     * @property loadOptional
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   959
     * @type boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   960
     * @default false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   961
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   962
    // this.loadOptional = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   963
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   964
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   965
     * All of the derived dependencies in sorted order, which
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   966
     * will be populated when either calculate() or insert()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   967
     * is called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   968
     * @property sorted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   969
     * @type string[]
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   970
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   971
    this.sorted = [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   972
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   973
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   974
     * Set when beginning to compute the dependency tree. 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   975
     * Composed of what YUI reports to be loaded combined
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   976
     * with what has been loaded by any instance on the page
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   977
     * with the version number specified in the metadata.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   978
     * @propery loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   979
     * @type {string: boolean}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   980
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   981
    this.loaded = GLOBAL_LOADED[VERSION];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   982
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   983
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   984
     * A list of modules to attach to the YUI instance when complete.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   985
     * If not supplied, the sorted list of dependencies are applied.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   986
     * @property attaching
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   987
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   988
    // this.attaching = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   989
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   990
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   991
     * Flag to indicate the dependency tree needs to be recomputed
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   992
     * if insert is called again.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   993
     * @property dirty
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   994
     * @type boolean
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   995
     * @default true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   996
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   997
    this.dirty = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   998
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
   999
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1000
     * List of modules inserted by the utility
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1001
     * @property inserted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1002
     * @type {string: boolean}
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1003
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1004
    this.inserted = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1005
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1006
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1007
     * List of skipped modules during insert() because the module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1008
     * was not defined
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1009
     * @property skipped
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1010
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1011
    this.skipped = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1012
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1013
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1014
    // Y.on('yui:load', this.loadNext, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1015
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1016
    this._config(o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1017
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1018
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1019
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1020
Y.Loader.prototype = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1021
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1022
    FILTER_DEFS: {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1023
        RAW: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1024
            'searchExp': "-min\\.js", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1025
            'replaceStr': ".js"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1026
        },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1027
        DEBUG: { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1028
            'searchExp': "-min\\.js", 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1029
            'replaceStr': "-debug.js"
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1030
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1031
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1032
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1033
    SKIN_PREFIX: "skin-",
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1034
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1035
    _config: function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1036
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1037
        var i, j, val, f;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1038
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1039
        // apply config values
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1040
        if (o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1041
            for (i in o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1042
                if (o.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1043
                    val = o[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1044
                    if (i == 'require') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1045
                        this.require(val);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1046
                    } else if (i == 'modules') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1047
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1048
                        // add a hash of module definitions
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1049
                        for (j in val) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1050
                            if (val.hasOwnProperty(j)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1051
                                this.addModule(val[j], j);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1052
                            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1053
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1054
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1055
                    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1056
                        this[i] = val;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1057
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1058
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1059
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1060
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1061
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1062
        // fix filter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1063
        f = this.filter;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1064
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1065
        if (L.isString(f)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1066
            f = f.toUpperCase();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1067
            this.filterName = f;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1068
            this.filter = this.FILTER_DEFS[f];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1069
            if (f == 'DEBUG') {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1070
                this.require('yui-log', 'dump');
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1071
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1072
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1073
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1074
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1075
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1076
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1077
     * Returns the skin module name for the specified skin name.  If a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1078
     * module name is supplied, the returned skin module name is 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1079
     * specific to the module passed in.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1080
     * @method formatSkin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1081
     * @param skin {string} the name of the skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1082
     * @param mod {string} optional: the name of a module to skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1083
     * @return {string} the full skin module name
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1084
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1085
    formatSkin: function(skin, mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1086
        var s = this.SKIN_PREFIX + skin;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1087
        if (mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1088
            s = s + "-" + mod;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1089
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1090
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1091
        return s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1092
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1093
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1094
    /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1095
     * Reverses <code>formatSkin</code>, providing the skin name and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1096
     * module name if the string matches the pattern for skins.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1097
     * @method parseSkin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1098
     * @param mod {string} the module name to parse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1099
     * @return {skin: string, module: string} the parsed skin name 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1100
     * and module name, or null if the supplied string does not match
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1101
     * the skin pattern
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1102
     * 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1103
     * This isn't being used at the moment
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1104
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1105
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1106
    // parseSkin: function(mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1107
    //     
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1108
    //     if (mod.indexOf(this.SKIN_PREFIX) === 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1109
    //         var a = mod.split("-");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1110
    //         return {skin: a[1], module: a[2]};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1111
    //     } 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1112
    //     return null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1113
    // },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1114
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1115
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1116
     * Adds the skin def to the module info
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1117
     * @method _addSkin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1118
     * @param skin {string} the name of the skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1119
     * @param mod {string} the name of the module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1120
     * @param parent {string} parent module if this is a skin of a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1121
     * submodule or plugin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1122
     * @return {string} the module name for the skin
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1123
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1124
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1125
    _addSkin: function(skin, mod, parent) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1127
        var name = this.formatSkin(skin), 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1128
            info = this.moduleInfo,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1129
            sinf = this.skin, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1130
            ext  = info[mod] && info[mod].ext,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1131
            mdef, pkg;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1132
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1133
        /*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1134
        // Add a module definition for the skin rollup css
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1135
        if (!info[name]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1136
            this.addModule({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1137
                'name': name,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1138
                'type': 'css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1139
                'path': sinf.base + skin + '/' + sinf.path,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1140
                //'supersedes': '*',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1141
                'after': sinf.after,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1142
                'rollup': sinf.rollup,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1143
                'ext': ext
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1144
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1145
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1146
        */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1147
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1148
        // Add a module definition for the module-specific skin css
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1149
        if (mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1150
            name = this.formatSkin(skin, mod);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1151
            if (!info[name]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1152
                mdef = info[mod];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1153
                pkg = mdef.pkg || mod;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1154
                this.addModule({
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1155
                    'name': name,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1156
                    'type': 'css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1157
                    'after': sinf.after,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1158
                    'path': (parent || pkg) + '/' + sinf.base + skin + '/' + mod + '.css',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1159
                    'ext': ext
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1160
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1161
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1162
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1164
        return name;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1165
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1166
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1167
    /** Add a new module to the component metadata.         
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1168
     * <dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1169
     *     <dt>name:</dt>       <dd>required, the component name</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1170
     *     <dt>type:</dt>       <dd>required, the component type (js or css)</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1171
     *     <dt>path:</dt>       <dd>required, the path to the script from "base"</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1172
     *     <dt>requires:</dt>   <dd>array of modules required by this component</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1173
     *     <dt>optional:</dt>   <dd>array of optional modules for this component</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1174
     *     <dt>supersedes:</dt> <dd>array of the modules this component replaces</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1175
     *     <dt>after:</dt>      <dd>array of modules the components which, if present, should be sorted above this one</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1176
     *     <dt>rollup:</dt>     <dd>the number of superseded modules required for automatic rollup</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1177
     *     <dt>fullpath:</dt>   <dd>If fullpath is specified, this is used instead of the configured base + path</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1178
     *     <dt>skinnable:</dt>  <dd>flag to determine if skin assets should automatically be pulled in</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1179
     *     <dt>submodules:</dt> <dd>a has of submodules</dd>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1180
     * </dl>
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1181
     * @method addModule
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1182
     * @param o An object containing the module data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1183
     * @param name the module name (optional), required if not in the module data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1184
     * @return {boolean} true if the module was added, false if 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1185
     * the object passed in did not provide all required attributes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1186
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1187
    addModule: function(o, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1188
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1189
        name = name || o.name;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1190
        o.name = name;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1191
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1192
        if (!o || !o.name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1193
            return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1194
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1195
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1196
        if (!o.type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1197
            o.type = JS;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1198
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1199
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1200
        if (!o.path && !o.fullpath) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1201
            // o.path = name + "/" + name + "-min." + o.type;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1202
            o.path = _path(name, name, o.type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1203
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1204
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1205
        o.ext = ('ext' in o) ? o.ext : (this._internal) ? false : true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1206
        o.requires = o.requires || [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1207
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1208
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1209
        this.moduleInfo[name] = o;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1210
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1211
        // Handle submodule logic
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1212
        var subs = o.submodules, i, l, sup, s, smod, plugins, plug;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1213
        if (subs) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1214
            sup = []; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1215
            l   = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1216
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1217
            for (i in subs) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1218
                if (subs.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1219
                    s = subs[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1220
                    s.path = _path(name, i, o.type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1221
                    this.addModule(s, i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1222
                    sup.push(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1223
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1224
                    if (o.skinnable) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1225
                        smod = this._addSkin(this.skin.defaultSkin, i, name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1226
                        sup.push(smod.name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1227
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1228
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1229
                    l++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1230
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1231
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1232
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1233
            o.supersedes = sup;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1234
            o.rollup = (l<4) ? l : Math.min(l-1, 4);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1235
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1236
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1237
        plugins = o.plugins;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1238
        if (plugins) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1239
            for (i in plugins) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1240
                if (plugins.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1241
                    plug = plugins[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1242
                    plug.path = _path(name, i, o.type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1243
                    plug.requires = plug.requires || [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1244
                    // plug.requires.push(name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1245
                    this.addModule(plug, i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1246
                    if (o.skinnable) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1247
                        this._addSkin(this.skin.defaultSkin, i, name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1248
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1249
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1250
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1251
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1252
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1253
        this.dirty = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1254
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1255
        return o;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1256
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1257
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1258
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1259
     * Add a requirement for one or more module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1260
     * @method require
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1261
     * @param what {string[] | string*} the modules to load
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1262
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1263
    require: function(what) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1264
        var a = (typeof what === "string") ? arguments : what;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1265
        this.dirty = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1266
        Y.mix(this.required, Y.Array.hash(a));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1267
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1268
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1269
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1270
     * Returns an object containing properties for all modules required
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1271
     * in order to load the requested module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1272
     * @method getRequires
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1273
     * @param mod The module definition from moduleInfo
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1274
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1275
    getRequires: function(mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1276
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1277
        if (!mod) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1278
            return [];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1279
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1280
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1281
        if (!this.dirty && mod.expanded) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1282
            return mod.expanded;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1283
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1284
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1285
        var i, d=[], r=mod.requires, o=mod.optional, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1286
            info=this.moduleInfo, m, j, add;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1287
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1288
        for (i=0; i<r.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1289
            d.push(r[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1290
            m = this.getModule(r[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1291
            add = this.getRequires(m);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1292
            for (j=0;j<add.length;j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1293
                d.push(add[j]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1294
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1295
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1296
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1297
        // get the requirements from superseded modules, if any
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1298
        r=mod.supersedes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1299
        if (r) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1300
            for (i=0; i<r.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1301
                d.push(r[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1302
                m = this.getModule(r[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1303
                add = this.getRequires(m);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1304
                for (j=0;j<add.length;j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1305
                    d.push(add[j]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1306
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1307
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1308
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1309
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1310
        if (o && this.loadOptional) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1311
            for (i=0; i<o.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1312
                d.push(o[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1313
                add = this.getRequires(info[o[i]]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1314
                for (j=0;j<add.length;j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1315
                    d.push(add[j]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1316
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1317
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1318
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1319
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1320
        mod.expanded = Y.Object.keys(Y.Array.hash(d));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1321
        return mod.expanded;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1322
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1323
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1324
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1325
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1326
     * Returns a hash of module names the supplied module satisfies.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1327
     * @method getProvides
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1328
     * @param name {string} The name of the module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1329
     * @return what this module provides
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1330
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1331
    getProvides: function(name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1332
        var m = this.getModule(name), o, s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1333
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1334
        if (!m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1335
            return NOT_FOUND;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1336
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1337
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1338
        if (m && !m.provides) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1339
            o = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1340
            s = m.supersedes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1341
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1342
            if (s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1343
                Y.Array.each(s, function(v) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1344
                    Y.mix(o, this.getProvides(v));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1345
                }, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1346
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1347
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1348
            o[name] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1349
            m.provides = o;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1350
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1351
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1352
        return m.provides;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1353
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1354
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1355
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1356
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1357
     * Calculates the dependency tree, the result is stored in the sorted 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1358
     * property
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1359
     * @method calculate
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1360
     * @param o optional options object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1361
     * @param type optional argument to prune modules 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1362
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1363
    calculate: function(o, type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1364
        if (o || type || this.dirty) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1365
            this._config(o);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1366
            this._setup();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1367
            this._explode();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1368
            if (this.allowRollup && !this.combine) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1369
                this._rollup();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1370
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1371
            this._reduce();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1372
            this._sort();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1373
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1374
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1375
            this.dirty = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1376
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1377
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1378
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1379
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1380
     * Investigates the current YUI configuration on the page.  By default,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1381
     * modules already detected will not be loaded again unless a force
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1382
     * option is encountered.  Called by calculate()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1383
     * @method _setup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1384
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1385
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1386
    _setup: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1387
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1388
        var info = this.moduleInfo, name, i, j, m, o, l, smod;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1389
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1390
        // Create skin modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1391
        for (name in info) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1392
            if (info.hasOwnProperty(name)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1393
                m = info[name];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1394
                if (m && m.skinnable) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1395
                    o = this.skin.overrides;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1396
                    if (o && o[name]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1397
                        for (i=0; i<o[name].length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1398
                            smod = this._addSkin(o[name][i], name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1399
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1400
                    } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1401
                        smod = this._addSkin(this.skin.defaultSkin, name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1402
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1403
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1404
                    m.requires.push(smod);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1405
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1406
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1407
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1408
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1409
        l = Y.merge(this.inserted); // shallow clone
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1410
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1411
        // available modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1412
        if (!this.ignoreRegistered) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1413
            Y.mix(l, GLOBAL_ENV.mods);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1414
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1415
        
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1416
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1417
        // add the ignore list to the list of loaded packages
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1418
        if (this.ignore) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1419
            // OU.appendArray(l, this.ignore);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1420
            Y.mix(l, Y.Array.hash(this.ignore));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1421
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1422
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1423
        // expand the list to include superseded modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1424
        for (j in l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1425
            if (l.hasOwnProperty(j)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1426
                Y.mix(l, this.getProvides(j));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1427
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1428
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1429
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1430
        // remove modules on the force list from the loaded list
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1431
        if (this.force) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1432
            for (i=0; i<this.force.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1433
                if (this.force[i] in l) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1434
                    delete l[this.force[i]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1435
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1436
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1437
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1438
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1439
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1440
        Y.mix(this.loaded, l);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1441
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1442
        // this.loaded = l;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1443
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1444
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1445
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1446
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1447
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1448
     * Inspects the required modules list looking for additional 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1449
     * dependencies.  Expands the required list to include all 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1450
     * required modules.  Called by calculate()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1451
     * @method _explode
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1452
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1453
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1454
    _explode: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1455
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1456
        var r = this.required, m, reqs;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1457
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1458
        Y.Object.each(r, function(v, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1459
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1460
            m = this.getModule(name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1461
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1462
            var expound = m && m.expound;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1463
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1464
            if (m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1465
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1466
                if (expound) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1467
                    r[expound] = this.getModule(expound);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1468
                    reqs = this.getRequires(r[expound]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1469
                    Y.mix(r, Y.Array.hash(reqs));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1470
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1471
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1472
                reqs = this.getRequires(m);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1473
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1474
                Y.mix(r, Y.Array.hash(reqs));
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1475
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1476
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1477
        }, this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1478
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1479
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1480
    getModule: function(name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1481
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1482
        var m = this.moduleInfo[name];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1483
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1484
        // create the default module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1485
        // if (!m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1486
            // m = this.addModule({ext: false}, name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1487
        // }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1488
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1489
        return m;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1490
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1491
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1492
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1493
     * Look for rollup packages to determine if all of the modules a
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1494
     * rollup supersedes are required.  If so, include the rollup to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1495
     * help reduce the total number of connections required.  Called
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1496
     * by calculate()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1497
     * @method _rollup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1498
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1499
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1500
    _rollup: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1501
        var i, j, m, s, rollups={}, r=this.required, roll,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1502
            info = this.moduleInfo, rolled, c;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1503
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1504
        // find and cache rollup modules
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1505
        if (this.dirty || !this.rollups) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1506
            for (i in info) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1507
                if (info.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1508
                    m = this.getModule(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1509
                    // if (m && m.rollup && m.supersedes) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1510
                    if (m && m.rollup) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1511
                        rollups[i] = m;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1512
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1513
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1514
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1515
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1516
            this.rollups = rollups;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1517
            this.forceMap = (this.force) ? Y.Array.hash(this.force) : {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1518
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1519
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1520
        // make as many passes as needed to pick up rollup rollups
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1521
        for (;;) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1522
            rolled = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1523
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1524
            // go through the rollup candidates
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1525
            for (i in rollups) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1526
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1527
                if (rollups.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1528
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1529
                    // there can be only one, unless forced
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1530
                    if (!r[i] && ((!this.loaded[i]) || this.forceMap[i])) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1531
                        m = this.getModule(i); 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1532
                        s = m.supersedes || []; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1533
                        roll = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1534
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1535
                        // @TODO remove continue
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1536
                        if (!m.rollup) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1537
                            continue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1538
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1539
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1540
                        c = 0;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1541
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1542
                        // check the threshold
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1543
                        for (j=0;j<s.length;j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1544
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1545
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1546
                            // if the superseded module is loaded, we can't load the rollup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1547
                            // unless it has been forced
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1548
                            if (this.loaded[s[j]] && !this.forceMap[s[j]]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1549
                                roll = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1550
                                break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1551
                            // increment the counter if this module is required.  if we are
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1552
                            // beyond the rollup threshold, we will use the rollup module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1553
                            } else if (r[s[j]]) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1554
                                c++;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1555
                                roll = (c >= m.rollup);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1556
                                if (roll) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1557
                                    break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1558
                                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1559
                            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1560
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1561
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1562
                        if (roll) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1563
                            // add the rollup
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1564
                            r[i] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1565
                            rolled = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1566
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1567
                            // expand the rollup's dependencies
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1568
                            this.getRequires(m);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1569
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1570
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1571
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1572
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1573
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1574
            // if we made it here w/o rolling up something, we are done
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1575
            if (!rolled) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1576
                break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1577
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1578
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1579
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1580
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1581
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1582
     * Remove superceded modules and loaded modules.  Called by
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1583
     * calculate() after we have the mega list of all dependencies
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1584
     * @method _reduce
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1585
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1586
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1587
    _reduce: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1588
        var i, j, s, m, r=this.required, type = this.loadType;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1589
        for (i in r) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1590
            if (r.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1591
                m = this.getModule(i);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1592
                // remove if already loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1593
                if ((this.loaded[i] && (!this.forceMap[i]) && !this.ignoreRegistered) || (type && m && m.type != type)) { 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1594
                    delete r[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1595
                // remove anything this module supersedes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1596
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1597
                    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1598
                    s = m && m.supersedes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1599
                    if (s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1600
                        for (j=0; j<s.length; j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1601
                            if (s[j] in r) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1602
                                delete r[s[j]];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1603
                            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1604
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1605
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1606
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1607
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1608
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1609
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1610
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1611
    _attach: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1612
        // this is the full list of items the YUI needs attached,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1613
        // which is needed if some dependencies are already on
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1614
        // the page without their dependencies.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1615
        if (this.attaching) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1616
            Y._attach(this.attaching);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1617
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1618
            Y._attach(this.sorted);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1619
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1620
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1621
        // this._pushEvents();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1622
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1623
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1624
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1625
    _finish: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1626
        _queue.running = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1627
        this._continue();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1628
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1629
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1630
    _onSuccess: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1631
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1632
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1633
        this._attach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1634
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1635
        var skipped = this.skipped, i, f;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1636
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1637
        for (i in skipped) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1638
            if (skipped.hasOwnProperty(i)) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1639
                delete this.inserted[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1640
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1641
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1642
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1643
        this.skipped = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1644
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1645
        f = this.onSuccess;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1646
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1647
        if (f) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1648
            f.call(this.context, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1649
                msg: 'success',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1650
                data: this.data,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1651
                success: true
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1652
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1653
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1654
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1655
        this._finish();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1656
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1657
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1658
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1659
    _onFailure: function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1660
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1661
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1662
        this._attach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1663
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1664
        var f = this.onFailure;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1665
        if (f) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1666
            f.call(this.context, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1667
                msg: 'failure: ' + o.msg,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1668
                data: this.data,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1669
                success: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1670
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1671
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1672
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1673
        this._finish();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1674
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1675
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1676
    _onTimeout: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1677
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1678
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1679
        this._attach();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1680
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1681
        var f = this.onTimeout;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1682
        if (f) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1683
            f.call(this.context, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1684
                msg: 'timeout',
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1685
                data: this.data,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1686
                success: false
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1687
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1688
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1689
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1690
        this._finish();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1691
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1692
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1693
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1694
     * Sorts the dependency tree.  The last step of calculate()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1695
     * @method _sort
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1696
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1697
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1698
    _sort: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1699
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1700
        // create an indexed list
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1701
        var s = Y.Object.keys(this.required), 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1702
            info = this.moduleInfo, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1703
            loaded = this.loaded,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1704
            done = {},
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1705
            p=0, l, a, b, j, k, moved, doneKey,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1706
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1707
        // returns true if b is not loaded, and is required
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1708
        // directly or by means of modules it supersedes.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1709
            requires = Y.cached(function(mod1, mod2) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1710
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1711
                var m = info[mod1], i, r, after, other = info[mod2], s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1712
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1713
                if (loaded[mod2] || !m || !other) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1714
                    return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1715
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1716
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1717
                r     = m.expanded;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1718
                after = m.after; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1719
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1720
                // check if this module requires the other directly
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1721
                if (r && Y.Array.indexOf(r, mod2) > -1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1722
                    return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1723
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1724
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1725
                // check if this module should be sorted after the other
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1726
                if (after && Y.Array.indexOf(after, mod2) > -1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1727
                    return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1728
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1729
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1730
                // check if this module requires one the other supersedes
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1731
                s = info[mod2] && info[mod2].supersedes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1732
                if (s) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1733
                    for (i=0; i<s.length; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1734
                        if (requires(mod1, s[i])) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1735
                            return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1736
                        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1737
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1738
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1739
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1740
                // external css files should be sorted below yui css
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1741
                if (m.ext && m.type == CSS && !other.ext && other.type == CSS) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1742
                    return true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1743
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1744
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1745
                return false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1746
            });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1747
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1748
        // keep going until we make a pass without moving anything
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1749
        for (;;) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1750
           
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1751
            l     = s.length; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1752
            moved = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1753
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1754
            // start the loop after items that are already sorted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1755
            for (j=p; j<l; j=j+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1756
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1757
                // check the next module on the list to see if its
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1758
                // dependencies have been met
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1759
                a = s[j];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1760
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1761
                // check everything below current item and move if we
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1762
                // find a requirement for the current item
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1763
                for (k=j+1; k<l; k=k+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1764
                    doneKey = a + s[k];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1765
                    if (!done[doneKey] && requires(a, s[k])) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1766
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1767
                        // extract the dependency so we can move it up
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1768
                        b = s.splice(k, 1);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1769
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1770
                        // insert the dependency above the item that 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1771
                        // requires it
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1772
                        s.splice(j, 0, b[0]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1773
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1774
                        // only swap two dependencies once to short circut
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1775
                        // circular dependencies
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1776
                        done[doneKey] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1777
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1778
                        // keep working 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1779
                        moved = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1780
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1781
                        break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1782
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1783
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1784
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1785
                // jump out of loop if we moved something
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1786
                if (moved) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1787
                    break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1788
                // this item is sorted, move our pointer and keep going
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1789
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1790
                    p = p + 1;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1791
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1792
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1793
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1794
            // when we make it here and moved is false, we are 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1795
            // finished sorting
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1796
            if (!moved) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1797
                break;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1798
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1799
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1800
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1801
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1802
        this.sorted = s;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1803
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1804
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1805
    _insert: function(source, o, type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1806
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1807
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1808
        // restore the state at the time of the request
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1809
        if (source) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1810
            this._config(source);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1811
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1812
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1813
        // build the dependency list
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1814
        this.calculate(o); // don't include type so we can process CSS and script in
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1815
                           // one pass when the type is not specified.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1816
        this.loadType = type;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1817
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1818
        if (!type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1819
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1820
            var self = this;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1821
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1822
            this._internalCallback = function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1823
                var f = self.onCSS;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1824
                if (f) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1825
                    f.call(self.context, Y);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1826
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1827
                self._internalCallback = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1828
                self._insert(null, null, JS);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1829
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1830
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1831
            // _queue.running = false;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1832
            this._insert(null, null, CSS);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1833
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1834
            return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1835
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1836
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1837
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1838
        // set a flag to indicate the load has started
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1839
        this._loading = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1840
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1841
        // flag to indicate we are done with the combo service
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1842
        // and any additional files will need to be loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1843
        // individually
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1844
        this._combineComplete = {};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1845
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1846
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1847
        // start the load
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1848
        this.loadNext();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1849
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1850
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1851
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1852
    _continue: function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1853
        if (!(_queue.running) && _queue.size() > 0) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1854
            _queue.running = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1855
            _queue.next()();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1856
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1857
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1858
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1859
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1860
     * inserts the requested modules and their dependencies.  
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1861
     * <code>type</code> can be "js" or "css".  Both script and 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1862
     * css are inserted if type is not provided.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1863
     * @method insert
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1864
     * @param o optional options object
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1865
     * @param type {string} the type of dependency to insert
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1866
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1867
    insert: function(o, type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1868
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1869
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1870
        var self = this, copy = Y.merge(this, true);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1871
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1872
        delete copy.require;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1873
        delete copy.dirty;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1874
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1875
        _queue.add(function() {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1876
            self._insert(copy, o, type);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1877
        });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1878
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1879
        this._continue();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1880
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1881
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1882
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1883
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1884
     * Executed every time a module is loaded, and if we are in a load
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1885
     * cycle, we attempt to load the next script.  Public so that it
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1886
     * is possible to call this if using a method other than
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1887
     * Y.register to determine when scripts are fully loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1888
     * @method loadNext
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1889
     * @param mname {string} optional the name of the module that has
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1890
     * been loaded (which is usually why it is time to load the next
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1891
     * one)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1892
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1893
    loadNext: function(mname) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1894
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1895
        // It is possible that this function is executed due to something
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1896
        // else one the page loading a YUI module.  Only react when we
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1897
        // are actively loading something
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1898
        if (!this._loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1899
            return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1900
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1901
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1902
        var s, len, i, m, url, self=this, type=this.loadType, fn, msg, attr,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1903
            callback=function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1904
                this._combineComplete[type] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1905
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1906
                var c=this._combining, len=c.length, i;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1907
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1908
                for (i=0; i<len; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1909
                    this.inserted[c[i]] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1910
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1911
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1912
                this.loadNext(o.data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1913
            },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1914
            onsuccess=function(o) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1915
                self.loadNext(o.data);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1916
            };
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1917
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1918
        // @TODO this will need to handle the two phase insert when
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1919
        // CSS support is added
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1920
        if (this.combine && (!this._combineComplete[type])) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1921
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1922
            this._combining = []; 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1923
            s=this.sorted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1924
            len=s.length;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1925
            url=this.comboBase;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1926
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1927
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1928
            for (i=0; i<len; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1929
                m = this.getModule(s[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1930
                // Do not try to combine non-yui JS
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1931
                if (m && (m.type === type) && !m.ext) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1932
                    url += this.root + m.path;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1933
                    if (i < len-1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1934
                        url += '&';
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1935
                    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1936
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1937
                    this._combining.push(s[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1938
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1939
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1940
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1941
            if (this._combining.length) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1942
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1943
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1944
                // if (m.type === CSS) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1945
                if (type === CSS) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1946
                    fn = Y.Get.css;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1947
                    attr = this.cssAttributes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1948
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1949
                    fn = Y.Get.script;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1950
                    attr = this.jsAttributes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1951
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1952
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1953
                // @TODO get rid of the redundant Get code
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1954
                fn(this._filter(url), {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1955
                    data: this._loading,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1956
                    onSuccess: callback,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1957
                    onFailure: this._onFailure,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1958
                    onTimeout: this._onTimeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1959
                    insertBefore: this.insertBefore,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1960
                    charset: this.charset,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1961
                    attributes: attr,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1962
                    timeout: this.timeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1963
                    autopurge: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1964
                    context: self 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1965
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1966
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1967
                return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1968
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1969
            } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1970
                this._combineComplete[type] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1971
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1972
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1973
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1974
        if (mname) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1975
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1976
            // if the module that was just loaded isn't what we were expecting,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1977
            // continue to wait
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1978
            if (mname !== this._loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1979
                return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1980
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1981
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1982
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1983
            // The global handler that is called when each module is loaded
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1984
            // will pass that module name to this function.  Storing this
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1985
            // data to avoid loading the same module multiple times
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1986
            this.inserted[mname] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1987
            this.loaded[mname] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1988
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1989
            if (this.onProgress) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1990
                this.onProgress.call(this.context, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1991
                        name: mname,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1992
                        data: this.data
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1993
                    });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1994
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1995
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1996
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1997
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1998
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  1999
        s=this.sorted;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2000
        len=s.length;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2001
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2002
        for (i=0; i<len; i=i+1) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2003
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2004
            // this.inserted keeps track of what the loader has loaded.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2005
            // move on if this item is done.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2006
            if (s[i] in this.inserted) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2007
                continue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2008
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2009
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2010
            // Because rollups will cause multiple load notifications
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2011
            // from Y, loadNext may be called multiple times for
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2012
            // the same module when loading a rollup.  We can safely
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2013
            // skip the subsequent requests
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2014
            if (s[i] === this._loading) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2015
                return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2016
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2017
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2018
            // log("inserting " + s[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2019
            m = this.getModule(s[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2020
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2021
            if (!m) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2022
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2023
                msg = "Undefined module " + s[i] + " skipped";
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2024
                this.inserted[s[i]] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2025
                this.skipped[s[i]] = true;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2026
                continue;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2027
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2028
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2029
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2030
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2031
            // The load type is stored to offer the possibility to load
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2032
            // the css separately from the script.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2033
            if (!type || type === m.type) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2034
                this._loading = s[i];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2035
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2036
                if (m.type === CSS) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2037
                    fn = Y.Get.css;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2038
                    attr = this.cssAttributes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2039
                } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2040
                    fn = Y.Get.script;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2041
                    attr = this.jsAttributes;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2042
                }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2043
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2044
                url = (m.fullpath) ? this._filter(m.fullpath, s[i]) : this._url(m.path, s[i]);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2045
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2046
                fn(url, {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2047
                    data: s[i],
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2048
                    onSuccess: onsuccess,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2049
                    insertBefore: this.insertBefore,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2050
                    charset: this.charset,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2051
                    attributes: attr,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2052
                    onFailure: this._onFailure,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2053
                    onTimeout: this._onTimeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2054
                    timeout: this.timeout,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2055
                    autopurge: false,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2056
                    context: self 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2057
                });
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2058
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2059
                return;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2060
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2061
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2062
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2063
        // we are finished
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2064
        this._loading = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2065
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2066
        fn = this._internalCallback;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2067
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2068
        // internal callback for loading css first
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2069
        if (fn) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2070
            this._internalCallback = null;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2071
            fn.call(this);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2072
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2073
        // } else if (this.onSuccess) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2074
        } else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2075
            // call Y.use passing this instance. Y will use the sorted
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2076
            // dependency list.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2077
            this._onSuccess();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2078
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2079
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2080
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2081
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2082
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2083
     * Apply filter defined for this instance to a url/path
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2084
     * method _filter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2085
     * @param u {string} the string to filter
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2086
     * @param name {string} the name of the module, if we are processing
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2087
     * a single module as opposed to a combined url
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2088
     * @return {string} the filtered string
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2089
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2090
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2091
    _filter: function(u, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2092
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2093
        var f = this.filter, 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2094
            hasFilter = name && (name in this.filters),
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2095
            modFilter = hasFilter && this.filters[name];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2096
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2097
        if (u) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2098
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2099
            if (hasFilter) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2100
                f = (L.isString(modFilter)) ? this.FILTER_DEFS[modFilter.toUpperCase()] || null : modFilter;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2101
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2102
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2103
            if (f) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2104
                u = u.replace(new RegExp(f.searchExp, 'g'), f.replaceStr);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2105
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2106
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2107
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2108
        return u;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2109
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2110
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2111
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2112
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2113
     * Generates the full url for a module
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2114
     * method _url
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2115
     * @param path {string} the path fragment
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2116
     * @return {string} the full url
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2117
     * @private
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2118
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2119
    _url: function(path, name) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2120
        return this._filter((this.base || "") + path, name);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2121
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2122
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2123
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2124
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2125
})();
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2126
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2127
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2128
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
  2129
}, '3.0.0' );