123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /**
- * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
- *
- * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
- */
- (function( root, factory ) {
- var modules = {},
- // 内部require, 简单不完全实现。
- // https://github.com/amdjs/amdjs-api/wiki/require
- _require = function( deps, callback ) {
- var args, len, i;
- // 如果deps不是数组,则直接返回指定module
- if ( typeof deps === 'string' ) {
- return getModule( deps );
- } else {
- args = [];
- for( len = deps.length, i = 0; i < len; i++ ) {
- args.push( getModule( deps[ i ] ) );
- }
- return callback.apply( null, args );
- }
- },
- // 内部define,暂时不支持不指定id.
- _define = function( id, deps, factory ) {
- if ( arguments.length === 2 ) {
- factory = deps;
- deps = null;
- }
- _require( deps || [], function() {
- setModule( id, factory, arguments );
- });
- },
- // 设置module, 兼容CommonJs写法。
- setModule = function( id, factory, args ) {
- var module = {
- exports: factory
- },
- returned;
- if ( typeof factory === 'function' ) {
- args.length || (args = [ _require, module.exports, module ]);
- returned = factory.apply( null, args );
- returned !== undefined && (module.exports = returned);
- }
- modules[ id ] = module.exports;
- },
- // 根据id获取module
- getModule = function( id ) {
- var module = modules[ id ] || root[ id ];
- if ( !module ) {
- throw new Error( '`' + id + '` is undefined' );
- }
- return module;
- },
- // 将所有modules,将路径ids装换成对象。
- exportsTo = function( obj ) {
- var key, host, parts, part, last, ucFirst;
- // make the first character upper case.
- ucFirst = function( str ) {
- return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
- };
- for ( key in modules ) {
- host = obj;
- if ( !modules.hasOwnProperty( key ) ) {
- continue;
- }
- parts = key.split('/');
- last = ucFirst( parts.pop() );
- while( (part = ucFirst( parts.shift() )) ) {
- host[ part ] = host[ part ] || {};
- host = host[ part ];
- }
- host[ last ] = modules[ key ];
- }
- return obj;
- },
- makeExport = function( dollar ) {
- root.__dollar = dollar;
- // exports every module.
- return exportsTo( factory( root, _define, _require ) );
- },
- origin;
- if ( typeof module === 'object' && typeof module.exports === 'object' ) {
- // For CommonJS and CommonJS-like environments where a proper window is present,
- module.exports = makeExport();
- } else if ( typeof define === 'function' && define.amd ) {
- // Allow using this built library as an AMD module
- // in another project. That other project will only
- // see this AMD call, not the internal modules in
- // the closure below.
- define([ 'jquery' ], makeExport );
- } else {
- // Browser globals case. Just assign the
- // result to a property on the global.
- origin = root.WebUploader;
- root.WebUploader = makeExport();
- root.WebUploader.noConflict = function() {
- root.WebUploader = origin;
- };
- }
- })( window, function( window, define, require ) {
|