Commit d22d7a11 authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

add RequireJS 2.1.2.

parent 2b2b96de
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts57908553.78</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>require.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>79623</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>require.js</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="Pdata" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
/** vim: et:ts=4:sw=4:sts=4\n
* @license RequireJS 2.1.2 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\n
* Available via the MIT or new BSD license.\n
* see: http://github.com/jrburke/requirejs for details\n
*/\n
//Not using strict: uneven strict support in browsers, #392, and causes\n
//problems with requirejs.exec()/transpiler plugins that may not be strict.\n
/*jslint regexp: true, nomen: true, sloppy: true */\n
/*global window, navigator, document, importScripts, jQuery, setTimeout, opera */\n
\n
var requirejs, require, define;\n
(function (global) {\n
var req, s, head, baseElement, dataMain, src,\n
interactiveScript, currentlyAddingScript, mainScript, subPath,\n
version = \'2.1.2\',\n
commentRegExp = /(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,\n
cjsRequireRegExp = /[^.]\\s*require\\s*\\(\\s*["\']([^\'"\\s]+)["\']\\s*\\)/g,\n
jsSuffixRegExp = /\\.js$/,\n
currDirRegExp = /^\\.\\//,\n
op = Object.prototype,\n
ostring = op.toString,\n
hasOwn = op.hasOwnProperty,\n
ap = Array.prototype,\n
aps = ap.slice,\n
apsp = ap.splice,\n
isBrowser = !!(typeof window !== \'undefined\' && navigator && document),\n
isWebWorker = !isBrowser && typeof importScripts !== \'undefined\',\n
//PS3 indicates loaded and complete, but need to wait for complete\n
//specifically. Sequence is \'loading\', \'loaded\', execution,\n
// then \'complete\'. The UA check is unfortunate, but not sure how\n
//to feature test w/o causing perf issues.\n
readyRegExp = isBrowser && navigator.platform === \'PLAYSTATION 3\' ?\n
/^complete$/ : /^(complete|loaded)$/,\n
defContextName = \'_\',\n
//Oh the tragedy, detecting opera. See the usage of isOpera for reason.\n
isOpera = typeof opera !== \'undefined\' && opera.toString() === \'[object Opera]\',\n
contexts = {},\n
cfg = {},\n
globalDefQueue = [],\n
useInteractive = false;\n
\n
function isFunction(it) {\n
return ostring.call(it) === \'[object Function]\';\n
}\n
\n
function isArray(it) {\n
return ostring.call(it) === \'[object Array]\';\n
}\n
\n
/**\n
* Helper function for iterating over an array. If the func returns\n
* a true value, it will break out of the loop.\n
*/\n
function each(ary, func) {\n
if (ary) {\n
var i;\n
for (i = 0; i < ary.length; i += 1) {\n
if (ary[i] && func(ary[i], i, ary)) {\n
break;\n
}\n
}\n
}\n
}\n
\n
/**\n
* Helper function for iterating over an array backwards. If the func\n
* returns a true value, it will break out of the loop.\n
*/\n
function eachReverse(ary, func) {\n
if (ary) {\n
var i;\n
for (i = ary.length - 1; i > -1; i -= 1) {\n
if (ary[i] && func(ary[i], i, ary)) {\n
break;\n
}\n
}\n
}\n
}\n
\n
function hasProp(obj, prop) {\n
return hasOwn.call(obj, prop);\n
}\n
\n
function getOwn(obj, prop) {\n
return hasProp(obj, prop) && obj[prop];\n
}\n
\n
/**\n
* Cycles over properties in an object and calls a function for each\n
* property value. If the function returns a truthy value, then the\n
* iteration is stopped.\n
*/\n
function eachProp(obj, func) {\n
var prop;\n
for (prop in obj) {\n
if (hasProp(obj, prop)) {\n
if (func(obj[prop], prop)) {\n
break;\n
}\n
}\n
}\n
}\n
\n
/**\n
* Simple function to mix in properties from source into target,\n
* but only if target does not already have a property of the same name.\n
*/\n
function mixin(target, source, force, deepStringMixin) {\n
if (source) {\n
eachProp(source, function (value, prop) {\n
if (force || !hasProp(target, prop)) {\n
if (deepStringMixin && typeof value !== \'string\') {\n
if (!target[prop]) {\n
target[prop] = {};\n
}\n
mixin(target[prop], value, force, deepStringMixin);\n
} else {\n
target[prop] = value;\n
}\n
}\n
});\n
}\n
return target;\n
}\n
\n
//Similar to Function.prototype.bind, but the \'this\' object is specified\n
//first, since it is easier to read/figure out what \'this\' will be.\n
function bind(obj, fn) {\n
return function () {\n
return fn.apply(obj, arguments);\n
};\n
}\n
\n
function scripts() {\n
return document.getElementsByTagName(\'script\');\n
}\n
\n
//Allow getting a global that expressed in\n
//dot notation, like \'a.b.c\'.\n
function getGlobal(value) {\n
if (!value) {\n
return value;\n
}\n
var g = global;\n
each(value.split(\'.\'), function (part) {\n
g = g[part];\n
});\n
return g;\n
}\n
\n
/**\n
* Constructs an error with a pointer to an URL with more information.\n
* @param {String} id the error ID that maps to an ID on a web page.\n
* @param {String} message human readable error.\n
* @param {Error} [err] the original error, if there is one.\n
*\n
* @returns {Error}\n
*/\n
function makeError(id, msg, err, requireModules) {\n
var e = new Error(msg + \'\\nhttp://requirejs.org/docs/errors.html#\' + id);\n
e.requireType = id;\n
e.requireModules = requireModules;\n
if (err) {\n
e.originalError = err;\n
}\n
return e;\n
}\n
\n
if (typeof define !== \'undefined\') {\n
//If a define is already in play via another AMD loader,\n
//do not overwrite.\n
return;\n
}\n
\n
if (typeof requirejs !== \'undefined\') {\n
if (isFunction(requirejs)) {\n
//Do not overwrite and existing requirejs instance.\n
return;\n
}\n
cfg = requirejs;\n
requirejs = undefined;\n
}\n
\n
//Allow for a require config object\n
if (typeof require !== \'undefined\' && !isFunction(require)) {\n
//assume it is a config object.\n
cfg = require;\n
require = undefined;\n
}\n
\n
function newContext(contextName) {\n
var inCheckLoaded, Module, context, handlers,\n
checkLoadedTimeoutId,\n
config = {\n
waitSeconds: 7,\n
baseUrl: \'./\',\n
paths: {},\n
pkgs: {},\n
shim: {},\n
map: {},\n
config: {}\n
},\n
registry = {},\n
undefEvents = {},\n
defQueue = [],\n
defined = {},\n
urlFetched = {},\n
requireCounter = 1,\n
unnormalizedCounter = 1;\n
\n
/**\n
* Trims the . and .. from an array of path segments.\n
* It will keep a leading path segment if a .. will become\n
* the first path segment, to help with module name lookups,\n
* which act like paths, but can be remapped. But the end result,\n
* all paths that use this function should look normalized.\n
* NOTE: this method MODIFIES the input array.\n
* @param {Array} ary the array of path segments.\n
*/\n
function trimDots(ary) {\n
var i, part;\n
for (i = 0; ary[i]; i += 1) {\n
part = ary[i];\n
if (part === \'.\') {\n
ary.splice(i, 1);\n
i -= 1;\n
} else if (part === \'..\') {\n
if (i === 1 && (ary[2] === \'..\' || ary[0] === \'..\')) {\n
//End of the line. Keep at least one non-dot\n
//path segment at the front so it can be mapped\n
//correctly to disk. Otherwise, there is likely\n
//no path mapping for a path starting with \'..\'.\n
//This can still fail, but catches the most reasonable\n
//uses of ..\n
break;\n
} else if (i > 0) {\n
ary.splice(i - 1, 2);\n
i -= 2;\n
}\n
}\n
}\n
}\n
\n
/**\n
* Given a relative module name, like ./something, normalize it to\n
* a real name that can be mapped to a path.\n
* @param {String} name the relative name\n
* @param {String} baseName a real name that the name arg is relative\n
* to.\n
* @param {Boolean} applyMap apply the map config to the value. Should\n
* only be done if this normalization is for a dependency ID.\n
* @returns {String} normalized name\n
*/\n
function normalize(name, baseName, applyMap) {\n
var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment,\n
foundMap, foundI, foundStarMap, starI,\n
baseParts = baseName && baseName.split(\'/\'),\n
normalizedBaseParts = baseParts,\n
map = config.map,\n
starMap = map && map[\'*\'];\n
\n
//Adjust any relative paths.\n
if (name && name.charAt(0) === \'.\') {\n
//If have a base name, try to normalize against it,\n
//otherwise, assume it is a top-level require that will\n
//be relative to baseUrl in the end.\n
if (baseName) {\n
if (getOwn(config.pkgs, baseName)) {\n
//If the baseName is a package name, then just treat it as one\n
//name to concat the name with.\n
normalizedBaseParts = baseParts = [baseName];\n
} else {\n
//Convert baseName to array, and lop off the last part,\n
//so that . matches that \'directory\' and not name of the baseName\'s\n
//module. For instance, baseName of \'one/two/three\', maps to\n
//\'one/two/three.js\', but we want the directory, \'one/two\' for\n
//this normalization.\n
normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n
}\n
\n
name = normalizedBaseParts.concat(name.split(\'/\'));\n
trimDots(name);\n
\n
//Some use of packages may use a . path to reference the\n
//\'main\' module name, so normalize for that.\n
pkgConfig = getOwn(config.pkgs, (pkgName = name[0]));\n
name = name.join(\'/\');\n
if (pkgConfig && name === pkgName + \'/\' + pkgConfig.main) {\n
name = pkgName;\n
}\n
} else if (name.indexOf(\'./\') === 0) {\n
// No baseName, so this is ID is resolved relative\n
// to baseUrl, pull off the leading dot.\n
name = name.substring(2);\n
}\n
}\n
\n
//Apply map config if available.\n
if (applyMap && (baseParts || starMap) && map) {\n
nameParts = name.split(\'/\');\n
\n
for (i = nameParts.length; i > 0; i -= 1) {\n
nameSegment = nameParts.slice(0, i).join(\'/\');\n
\n
if (baseParts) {\n
//Find the longest baseName segment match in the config.\n
//So, do joins on the biggest to smallest lengths of baseParts.\n
for (j = baseParts.length; j > 0; j -= 1) {\n
mapValue = getOwn(map, baseParts.slice(0, j).join(\'/\'));\n
\n
//baseName segment has config, find if it has one for\n
//this name.\n
if (mapValue) {\n
mapValue = getOwn(mapValue, nameSegment);\n
if (mapValue) {\n
//Match, update name to the new value.\n
foundMap = mapValue;\n
foundI = i;\n
break;\n
}\n
}\n
}\n
}\n
\n
if (foundMap) {\n
break;\n
}\n
\n
//Check for a star map match, but just hold on to it,\n
//if there is a shorter segment match later in a matching\n
//config, then favor over this star map.\n
if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) {\n
foundStarMap = getOwn(starMap, nameSegment);\n
starI = i;\n
}\n
}\n
\n
if (!foundMap && foundStarMap) {\n
foundMap = foundStarMap;\n
foundI = starI;\n
}\n
\n
if (foundMap) {\n
nameParts.splice(0, foundI, foundMap);\n
name = nameParts.join(\'/\');\n
}\n
}\n
\n
return name;\n
}\n
\n
function removeScript(name) {\n
if (isBrowser) {\n
each(scripts(), function (scriptNode) {\n
if (scriptNode.getAttribute(\'data-requiremodule\') === name &&\n
scriptNode.getAttribute(\'data-requirecontext\') === context.contextName) {\n
scriptNode.parentNode.removeChild(scriptNode);\n
return true;\n
}\n
});\n
}\n
}\n
\n
function hasPathFallback(id) {\n
var pathConfig = getOwn(config.paths, id);\n
if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) {\n
removeScript(id);\n
//Pop off the first array value, since it failed, and\n
//retry\n
pathConfig.shift();\n
context.require.undef(id);\n
context.require([id]);\n
return true;\n
}\n
}\n
\n
//Turns a plugin!resource to [plugin, resource]\n
//with the plugin being undefined if the name\n
//did not have a plugin prefix.\n
function splitPrefix(name) {\n
var prefix,\n
index = name ? name.indexOf(\'!\') : -1;\n
if (index > -1) {\n
prefix = name.substring(0, index);\n
name = name.substring(index + 1, name.length);\n
}\n
return [prefix, name];\n
}\n
\n
/**\n
* Creates a module mapping that includes plugin prefix, module\n
* name, and path. If parentModuleMap is provided it will\n
* also normalize the name via require.normalize()\n
*\n
* @param {String} name the module name\n
* @param {String} [parentModuleMap] parent module map\n
* for the module name, used to resolve relative names.\n
* @param {Boolean} isNormalized: is the ID already normalized.\n
* This is true if this call is done for a define() module ID.\n
* @param {Boolean} applyMap: apply the map config to the ID.\n
* Should only be true if this map is for a dependency.\n
*\n
* @returns {Object}\n
*/\n
function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {\n
var url, pluginModule, suffix, nameParts,\n
prefix = null,\n
parentName = parentModuleMap ? parentModuleMap.name : null,\n
originalName = name,\n
isDefine = true,\n
normalizedName = \'\';\n
\n
//If no name, then it means it is a require call, generate an\n
//internal name.\n
if (!name) {\n
isDefine = false;\n
name = \'_@r\' + (requireCounter += 1);\n
}\n
\n
nameParts = splitPrefix(name);\n
prefix = nameParts[0];\n
name = nameParts[1];\n
\n
if (prefix) {\n
prefix = normalize(prefix, parentName, applyMap);\n
pluginModule = getOwn(defined, prefix);\n
}\n
\n
//Account for relative paths if there is a base name.\n
if (name) {\n
if (prefix) {\n
if (pluginModule && pluginModule.normalize) {\n
//Plugin is loaded, use its normalize method.\n
normalizedName = pluginModule.normalize(name, function (name) {\n
return normalize(name, parentName, applyMap);\n
});\n
} else {\n
normalizedName = normalize(name, parentName, applyMap);\n
}\n
} else {\n
//A regular module.\n
normalizedName = normalize(name, parentName, applyMap);\n
\n
//Normalized name may be a plugin ID due to map config\n
//application in normalize. The map config values must\n
//already be normalized, so do not need to redo that part.\n
nameParts = splitPrefix(normalizedName);\n
prefix = nameParts[0];\n
normalizedName = nameParts[1];\n
isNormalized = true;\n
\n
url = context.nameToUrl(normalizedName);\n
}\n
}\n
\n
//If the id is a plugin id that cannot be determined if it needs\n
//normalization, stamp it with a unique ID so two matching relative\n
//ids that may conflict can be separate.\n
suffix = prefix && !pluginModule && !isNormalized ?\n
\'_unnormalized\' + (unnormalizedCounter += 1) :\n
\'\';\n
\n
return {\n
prefix: prefix,\n
name: normalizedName,\n
parentMap: parentModuleMap,\n
unnormalized: !!suffix,\n
url: url,\n
originalName: originalName,\n
isDefine: isDefine,\n
id: (prefix ?\n
prefix + \'!\' + normalizedName :\n
normalizedName) + suffix\n
};\n
}\n
\n
function getModule(depMap) {\n
var id = depMap.id,\n
mod = getOwn(registry, id);\n
\n
if (!mod) {\n
mod = registry[id] = new context.Module(depMap);\n
}\n
\n
return mod;\n
}\n
\n
function on(depMap, name, fn) {\n
var id = depMap.id,\n
mod = getOwn(registry, id);\n
\n
if (hasProp(defined, id) &&\n
(!mod || mod.defineEmitComplete)) {\n
if (name === \'defined\') {\n
fn(defined[id]);\n
}\n
} else {\n
getModule(depMap).on(name, fn);\n
}\n
}\n
\n
function onError(err, errback) {\n
var ids = err.requireModules,\n
notified = false;\n
\n
if (errback) {\n
errback(err);\n
} else {\n
each(ids, function (id) {\n
var mod = getOwn(registry, id);\n
if (mod) {\n
//Set error on module, so it skips timeout checks.\n
mod.error = err;\n
if (mod.events.error) {\n
notified = true;\n
mod.emit(\'error\', err);\n
}\n
}\n
});\n
\n
if (!notified) {\n
req.onError(err);\n
}\n
}\n
}\n
\n
/**\n
* Internal method to transfer globalQueue items to this context\'s\n
* defQueue.\n
*/\n
function takeGlobalQueue() {\n
//Push all the globalDefQueue items into the context\'s defQueue\n
if (globalDefQueue.length) {\n
//Array splice in the values since the context code has a\n
//local var ref to defQueue, so cannot just reassign the one\n
//on context.\n
apsp.apply(defQueue,\n
[defQueue.length - 1, 0].concat(globalDefQueue));\n
globalDefQueue = [];\n
}\n
}\n
\n
handlers = {\n
\'require\': function (mod) {\n
if (mod.require) {\n
return mod.require;\n
} else {\n
return (mod.require = context.makeRequire(mod.map));\n
}\n
},\n
\'exports\': function (mod) {\n
mod.usingExports = true;\n
if (mod.map.isDefine) {\n
if (mod.exports) {\n
return mod.exports;\n
} else {\n
return (mod.exports = defined[mod.map.id] = {});\n
}\n
}\n
},\n
\'module\': function (mod) {\n
if (mod.module) {\n
return mod.module;\n
} else {\n
return (mod.module = {\n
id: mod.map.id,\n
uri: mod.map.url,\n
config: function () {\n
return (config.config && getOwn(config.config, mod.map.id)) || {};\n
},\n
exports: defined[mod.map.id]\n
});\n
}\n
}\n
};\n
\n
function cleanRegistry(id) {\n
//Clean up machinery used for waiting modules.\n
delete registry[id];\n
}\n
\n
function breakCycle(mod, traced, processed) {\n
var id = mod.map.id;\n
\n
if (mod.error) {\n
mod.emit(\'error\', mod.error);\n
} else {\n
traced[id] = true;\n
each(mod.depMaps, function (depMap, i) {\n
var depId = depMap.id,\n
dep = getOwn(registry, depId);\n
\n
//Only force things that have not completed\n
//being defined, so still in the registry,\n
//and only if it has not been matched up\n
//in the module already.\n
if (dep && !mod.depMatched[i] && !processed[depId]) {\n
if (getOwn(traced, depId)) {\n
mod.defineDep(i, defined[depId]);\n
mod.check(); //pass false?\n
} else {\n
breakCycle(dep, traced, processed);\n
}\n
}\n
});\n
processed[id] = true;\n
}\n
}\n
\n
function checkLoaded() {\n
var map, modId, err, usingPathFallback,\n
waitInterval = config.waitSeconds * 1000,\n
//It is possible to disable the wait interval by using waitSeconds of 0.\n
expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),\n
noLoads = [],\n
reqCalls = [],\n
stillLoading = false,\n
needCycleCheck = true;\n
\n
//Do not bother if this call was a result of a cycle break.\n
if (inCheckLoaded) {\n
return;\n
}\n
\n
inCheckLoaded = true;\n
\n
//Figure out the state of all the modules.\n
eachProp(registry, function (mod) {\n
map = mod.map;\n
modId = map.id;\n
\n
//Skip things that are not enabled or in error state.\n
if (!mod.enabled) {\n
return;\n
}\n
\n
if (!map.isDefine) {\n
reqCalls.push(mod);\n
}\n
\n
if (!mod.error) {\n
//If the module should be executed, and it has not\n
//been inited and time is up, remember it.\n
if (!mod.inited && expired) {\n
if (hasPathFallback(modId)) {\n
usingPathFallback = true;\n
stillLoading = true;\n
} else {\n
noLoads.push(modId);\n
removeScript(modId);\n
}\n
} else if (!mod.inited && mod.fetched && map.isDefine) {\n
stillLoading = true;\n
if (!map.prefix) {\n
//No reason to keep looking for unfinished\n
//loading. If the only stillLoading is a\n
//plugin resource though, keep going,\n
//because it may be that a plugin resource\n
//is waiting on a non-plugin cycle.\n
return (needCycleCheck = false);\n
}\n
}\n
}\n
});\n
\n
if (expired && noLoads.length) {\n
//If wait time expired, throw error of unloaded modules.\n
err = makeError(\'timeout\', \'Load timeout for modules: \' + noLoads, null, noLoads);\n
err.contextName = context.contextName;\n
return onError(err);\n
}\n
\n
//Not expired, check for a cycle.\n
if (needCycleCheck) {\n
each(reqCalls, function (mod) {\n
breakCycle(mod, {}, {});\n
});\n
}\n
\n
//If still waiting on loads, and the waiting load is something\n
//other than a plugin resource, or there are still outstanding\n
//scripts, then just try back later.\n
if ((!expired || usingPathFallback) && stillLoading) {\n
//Something is still waiting to load. Wait for it, but only\n
//if a timeout is not already in effect.\n
if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) {\n
checkLoadedTimeoutId = setTimeout(function () {\n
checkLoadedTimeoutId = 0;\n
checkLoaded();\n
}, 50);\n
}\n
}\n
\n
inCheckLoaded = false;\n
}\n
\n
Module = function (map) {\n
this.events = getOwn(undefEvents, map.id) || {};\n
this.map = map;\n
this.shim = getOwn(config.shim, map.id);\n
this.depExports = [];\n
this.depMaps = [];\n
this.depMatched = [];\n
this.pluginMaps = {};\n
this.depCount = 0;\n
\n
/* this.exports this.factory\n
this.depMaps = [],\n
this.enabled, this.fetched\n
*/\n
};\n
\n
Module.prototype = {\n
init: function (depMaps, factory, errback, options) {\n
options = options || {};\n
\n
//Do not do more inits if already done. Can happen if there\n
//are multiple define calls for the same module. That is not\n
//a normal, common case, but it is also not unexpected.\n
if (this.inited) {\n
return;\n
}\n
\n
this.factory = factory;\n
\n
if (errback) {\n
//Register for errors on this module.\n
this.on(\'error\', errback);\n
} else if (this.events.error) {\n
//If no errback already, but there are error listeners\n
//on this module, set up an errback to pass to the deps.\n
errback = bind(this, function (err) {\n
this.emit(\'error\', err);\n
});\n
}\n
\n
//Do a copy of the dependency array, so that\n
//source inputs are not modified. For example\n
//"shim" deps are passed in here directly, and\n
//doing a direct modification of the depMaps array\n
//would affect that config.\n
this.depMaps = depMaps && depMaps.slice(0);\n
\n
this.errback = errback;\n
\n
//Indicate this module has be initialized\n
this.inited = true;\n
\n
this.ignore = options.ignore;\n
\n
//Could have option to init this module in enabled mode,\n
//or could have been previously marked as enabled. However,\n
//the dependencies are not known until init is called. So\n
//if enabled previously, now trigger dependencies as enabled.\n
if (options.enabled || this.enabled) {\n
//Enable this module and dependencies.\n
//Will call this.check()\n
this.enable();\n
} else {\n
this.check();\n
}\n
},\n
\n
defineDep: function (i, depExports) {\n
//Because of cycles, defined callback for a given\n
//export can be called more than once.\n
if (!this.depMatched[i]) {\n
this.depMatched[i] = true;\n
this.depCount -= 1;\n
this.depExports[i] = depExports;\n
}\n
},\n
\n
fetch: function () {\n
if (this.fetched) {\n
return;\n
}\n
this.fetched = true;\n
\n
context.startTime = (new Date()).getTime();\n
\n
var map = this.map;\n
\n
//If the manager is for a plugin managed resource,\n
//ask the plugin to load it now.\n
if (this.shim) {\n
context.makeRequire(this.map, {\n
enableBuildCallback: true\n
})(this.shim.deps || [], bind(this, function () {\n
return map.prefix ? this.callPlugin() : this.load();\n
}));\n
} else {\n
//Regular dependency.\n
return map.prefix ? this.callPlugin() : this.load();\n
}\n
},\n
\n
load: function () {\n
var url = this.map.url;\n
\n
//Regular dependency.\n
if (!urlFetched[url]) {\n
urlFetched[url] = true;\n
context.load(this.map.id, url);\n
}\n
},\n
\n
/**\n
* Checks is the module is ready to define itself, and if so,\n
* define it.\n
*/\n
check: function () {\n
if (!this.enabled || this.enabling) {\n
return;\n
}\n
\n
var err, cjsModule,\n
id = this.map.id,\n
depExports = this.depExports,\n
exports = this.exports,\n
factory = this.factory;\n
\n
if (!this.inited) {\n
this.fetch();\n
} else if (this.error) {\n
this.emit(\'error\', this.error);\n
} else if (!this.defining) {\n
//The factory could trigger another require call\n
//that would result in checking this module to\n
//define itself again. If already in the process\n
//of doing that, skip this work.\n
this.defining = true;\n
\n
if (this.depCount < 1 && !this.defined) {\n
if (isFunction(factory)) {\n
//If there is an error listener, favor passing\n
//to that instead of throwing an error.\n
if (this.events.error) {\n
try {\n
exports = context.execCb(id, factory, depExports, exports);\n
} catch (e) {\n
err = e;\n
}\n
} else {\n
exports = context.execCb(id, factory, depExports, exports);\n
}\n
\n
if (this.map.isDefine) {\n
//If setting exports via \'module\' is in play,\n
//favor that over return value and exports. After that,\n
//favor a non-undefined return value over exports use.\n
cjsModule = this.module;\n
if (cjsModule &&\n
cjsModule.exports !== undefined &&\n
//Make sure it is not already the exports value\n
cjsModule.exports !== this.exports) {\n
exports = cjsModule.exports;\n
} else if (exports === undefined && this.usingExports) {\n
//exports already set the defined value.\n
exports = this.exports;\n
}\n
}\n
\n
if (err) {\n
err.requireMap = this.map;\n
err.requireModules = [this.map.id];\n
err.requireType = \'define\';\n
return onError((this.error = err));\n
}\n
\n
} else {\n
//Just a literal value\n
exports = factory;\n
}\n
\n
this.exports = exports;\n
\n
if (this.map.isDefine && !this.ignore) {\n
defined[id] = exports;\n
\n
if (req.onResourceLoad) {\n
req.onResourceLoad(context, this.map, this.depMaps);\n
}\n
}\n
\n
//Clean up\n
delete registry[id];\n
\n
this.defined = true;\n
}\n
\n
//Finished the define stage. Allow calling check again\n
//to allow define notifications below in the case of a\n
//cycle.\n
this.defining = false;\n
\n
if (this.defined && !this.defineEmitted) {\n
this.defineEmitted = true;\n
this.emit(\'defined\', this.exports);\n
this.defineEmitComplete = true;\n
}\n
\n
}\n
},\n
\n
callPlugin: function () {\n
var map = this.map,\n
id = map.id,\n
//Map already normalized the prefix.\n
pluginMap = makeModuleMap(map.prefix);\n
\n
//Mark this as a dependency for this plugin, so it\n
//can be traced for cycles.\n
this.depMaps.push(pluginMap);\n
\n
on(pluginMap, \'defined\', bind(this, function (plugin) {\n
var load, normalizedMap, normalizedMod,\n
name = this.map.name,\n
parentName = this.map.parentMap ? this.map.parentMap.name : null,\n
localRequire = context.makeRequire(map.parentMap, {\n
enableBuildCallback: true,\n
skipMap: true\n
});\n
\n
//If current map is not normalized, wait for that\n
//normalized name to load instead of continuing.\n
if (this.map.unnormalized) {\n
//Normalize the ID if the plugin allows it.\n
if (plugin.normalize) {\n
name = plugin.normalize(name, function (name) {\n
return normalize(name, parentName, true);\n
}) || \'\';\n
}\n
\n
//prefix and name should already be normalized, no need\n
//for applying map config again either.\n
normalizedMap = makeModuleMap(map.prefix + \'!\' + name,\n
this.map.parentMap);\n
on(normalizedMap,\n
\'defined\', bind(this, function (value) {\n
this.init([], function () { return value; }, null, {\n
enabled: true,\n
ignore: true\n
});\n
}));\n
\n
normalizedMod = getOwn(registry, normalizedMap.id);\n
if (normalizedMod) {\n
//Mark this as a dependency for this plugin, so it\n
//can be traced for cycles.\n
this.depMaps.push(normalizedMap);\n
\n
if (this.events.error) {\n
normalizedMod.on(\'error\', bind(this, function (err) {\n
this.emit(\'error\', err);\n
}));\n
}\n
normalizedMod.enable();\n
}\n
\n
return;\n
}\n
\n
load = bind(this, function (value) {\n
this.init([], function () { return value; }, null, {\n
enabled: true\n
});\n
});\n
\n
load.error = bind(this, function (err) {\n
this.inited = true;\n
this.error = err;\n
err.requireModules = [id];\n
\n
//Remove temp unnormalized modules for this module,\n
//since they will never be resolved otherwise now.\n
eachProp(registry, function (mod) {\n
if (mod.map.id.indexOf(id + \'_unnormalized\') === 0) {\n
cleanRegistry(mod.map.id);\n
}\n
});\n
\n
onError(err);\n
});\n
\n
//Allow plugins to load other code without having to know the\n
//context or how to \'complete\' the load.\n
load.fromText = bind(this, function (text, textAlt) {\n
/*jslint evil: true */\n
var moduleName = map.name,\n
moduleMap = makeModuleMap(moduleName),\n
hasInteractive = useInteractive;\n
\n
//As of 2.1.0, support just passing the text, to reinforce\n
//fromText only being called once per resource. Still\n
//support old style of passing moduleName but discard\n
//that moduleName in favor of the internal ref.\n
if (textAlt) {\n
text = textAlt;\n
}\n
\n
//Turn off interactive script matching for IE for any define\n
//calls in the text, then turn it back on at the end.\n
if (hasInteractive) {\n
useInteractive = false;\n
}\n
\n
//Prime the system by creating a module instance for\n
//it.\n
getModule(moduleMap);\n
\n
//Transfer any config to this other module.\n
if (hasProp(config.config, id)) {\n
config.config[moduleName] = config.config[id];\n
}\n
\n
try {\n
req.exec(text);\n
} catch (e) {\n
throw new Error(\'fromText eval for \' + moduleName +\n
\' failed: \' + e);\n
}\n
\n
if (hasInteractive) {\n
useInteractive = true;\n
}\n
\n
//Mark this as a dependency for the plugin\n
//resource\n
this.depMaps.push(moduleMap);\n
\n
//Support anonymous modules.\n
context.completeLoad(moduleName);\n
\n
//Bind the value of that module to the value for this\n
//resource ID.\n
localRequire([moduleName], load);\n
});\n
\n
//Use parentName here since the plugin\'s name is not reliable,\n
//could be some weird string with no path that actually wants to\n
//reference the parentName\'s path.\n
plugin.load(map.name, localRequire, load, config);\n
}));\n
\n
context.enable(pluginMap, this);\n
this.pluginMaps[pluginMap.id] = pluginMap;\n
},\n
\n
enable: function () {\n
this.enabled = true;\n
\n
//Set flag mentioning that the module is enabling,\n
//so that immediate calls to the defined callbacks\n
//for dependencies do not trigger inadvertent load\n
//with the depCount still being zero.\n
this.enabling = true;\n
\n
//Enable each dependency\n
each(this.depMaps, bind(this, function (depMap, i) {\n
var id, mod, handler;\n
\n
if (typeof depMap === \'string\') {\n
//Dependency needs to be converted to a depMap\n
//and wired up to this module.\n
depMap = makeModuleMap(depMap,\n
(this.map.isDefine ? this.map : this.map.parentMap),\n
false,\n
!this.skipMap);\n
this.depMaps[i] = depMap;\n
\n
handler = getOwn(handlers, depMap.id);\n
\n
if (handler) {\n
this.depExports[i] = handler(this);\n
return;\n
}\n
\n
this.depCount += 1;\n
\n
on(depMap, \'defined\', bind(this, function (depExports) {\n
this.defineDep(i, depExports);\n
this.check();\n
}));\n
\n
if (this.errback) {\n
on(depMap, \'error\', this.errback);\n
}\n
}\n
\n
id = depMap.id;\n
mod = registry[id];\n
\n
//Skip special modules like \'require\', \'exports\', \'module\'\n
//Also, don\'t call enable if it is already enabled,\n
//important in circular dependency cases.\n
if (!hasProp(handlers, id) && mod && !mod.enabled) {\n
context.enable(depMap, this);\n
}\n
}));\n
\n
//Enable each plugin that is used in\n
//a dependency\n
eachProp(this.pluginMaps, bind(this, function (pluginMap) {\n
var mod = getOwn(registry, pluginMap.id);\n
if (mod && !mod.enabled) {\n
context.enable(pluginMap, this);\n
}\n
}));\n
\n
this.enabling = false;\n
\n
this.check();\n
},\n
\n
on: function (name, cb) {\n
var cbs = this.events[name];\n
if (!cbs) {\n
cbs = this.events[name] = [];\n
}\n
cbs.push(cb);\n
},\n
\n
emit: function (name, evt) {\n
each(this.events[name], function (cb) {\n
cb(evt);\n
});\n
if (name === \'error\') {\n
//Now that the error handler was triggered, remove\n
//the listeners, since this broken Module instance\n
//can stay around for a while in the registry.\n
delete this.events[name];\n
}\n
}\n
};\n
\n
function callGetModule(args) {\n
//Skip modules already defined.\n
if (!hasProp(defined, args[0])) {\n
getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]);\n
}\n
}\n
\n
function removeListener(node, func, name, ieName) {\n
//Favor detachEvent because of IE9\n
//issue, see attachEvent/addEventListener comment elsewhere\n
//in this file.\n
if (node.detachEvent && !isOpera) {\n
//Probably IE. If not it will throw an error, which will be\n
//useful to know.\n
if (ieName) {\n
node.detachEvent(ieName, func);\n
}\n
} else {\n
node.removeEventListener(name, func, false);\n
}\n
}\n
\n
/**\n
* Given an event from a script node, get the requirejs info from it,\n
* and then removes the event listeners on the node.\n
* @param {Event} evt\n
* @returns {Object}\n
*/\n
function getScriptData(evt) {\n
//Using currentTarget instead of target for Firefox 2.0\'s sake. Not\n
//all old browsers will be supported, but this one was easy enough\n
//to support and still makes sense.\n
var node = evt.currentTarget || evt.srcElement;\n
\n
//Remove the listeners once here.\n
removeListener(node, context.onScriptLoad, \'load\', \'onreadystatechange\');\n
removeListener(node, context.onScriptError, \'error\');\n
\n
return {\n
node: node,\n
id: node && node.getAttribute(\'data-requiremodule\')\n
};\n
}\n
\n
function intakeDefines() {\n
var args;\n
\n
//Any defined modules in the global queue, intake them now.\n
takeGlobalQueue();\n
\n
//Make sure any remaining defQueue items get properly processed.\n
while (defQueue.length) {\n
args = defQueue.shift();\n
if (args[0] === null) {\n
return onError(makeError(\'mismatch\', \'Mismatched anonymous define() module: \' + args[args.length - 1]));\n
} else {\n
//args are id, deps, factory. Should be normalized by the\n
//define() function.\n
callGetModule(args);\n
}\n
}\n
}\n
\n
context = {\n
config: config,\n
contextName: contextName,\n
registry: registry,\n
defined: defined,\n
urlFetched: urlFetched,\n
defQueue: defQueue,\n
Module: Module,\n
makeModuleMap: makeModuleMap,\n
nextTick: req.nextTick,\n
\n
/**\n
* Set a configuration for the context.\n
* @param {Object} cfg config object to integrate.\n
*/\n
configure: function (cfg) {\n
//Make sure the baseUrl ends in a slash.\n
if (cfg.baseUrl) {\n
if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== \'/\') {\n
cfg.baseUrl += \'/\';\n
}\n
}\n
\n
//Save off the paths and packages since they require special processing,\n
//they are additive.\n
var pkgs = config.pkgs,\n
shim = config.shim,\n
objs = {\n
paths: true,\n
config: true,\n
map: true\n
};\n
\n
eachProp(cfg, function (value, prop) {\n
if (objs[prop]) {\n
if (prop === \'map\') {\n
mixin(config[prop], value, true, true);\n
} else {\n
mixin(config[prop], value, true);\n
}\n
} else {\n
config[prop] = value;\n
}\n
});\n
\n
//Merge shim\n
if (cfg.shim) {\n
eachProp(cfg.shim, function (value, id) {\n
//Normalize the structure\n
if (isArray(value)) {\n
value = {\n
deps: value\n
};\n
}\n
if ((value.exports || value.init) && !value.exportsFn) {\n
value.exportsFn = context.makeShimExports(value);\n
}\n
shim[id] = value;\n
});\n
config.shim = shim;\n
}\n
\n
//Adjust packages if necessary.\n
if (cfg.packages) {\n
each(cfg.packages, function (pkgObj) {\n
var location;\n
\n
pkgObj = typeof pkgObj === \'string\' ? { name: pkgObj } : pkgObj;\n
location = pkgObj.location;\n
\n
//Create a brand new object on pkgs, since currentPackages can\n
//be passed in again, and config.pkgs is the internal transformed\n
//state for all package configs.\n
pkgs[pkgObj.name] = {\n
name: pkgObj.name,\n
location: location || pkgObj.name,\n
//Remove leading dot in main, so main paths are normalized,\n
//and remove any trailing .js, since different package\n
//envs have different conventions: some use a module name,\n
//some use a file name.\n
main: (pkgObj.main || \'main\')\n
.replace(currDirRegExp, \'\')\n
.replace(jsSuffixRegExp, \'\')\n
};\n
});\n
\n
//Done with modifications, assing packages back to context config\n
config.pkgs = pkgs;\n
}\n
\n
//If there are any "waiting to execute" modules in the registry,\n
//update the maps for them, since their info, like URLs to load,\n
//may have changed.\n
eachProp(registry, function (mod, id) {\n
//If module already has init called, since it is too\n
//late to modify them, and ignore unnormalized ones\n
//since they are transient.\n
if (!mod.inited && !mod.map.unnormalized) {\n
mod.map = makeModuleMap(id);\n
}\n
});\n
\n
//If a deps array or a config callback is specified, then call\n
//require with those args. This is useful when require is defined as a\n
//config object before require.js is loaded.\n
if (cfg.deps || cfg.callback) {\n
context.require(cfg.deps || [], cfg.callback);\n
}\n
},\n
\n
makeShimExports: function (value) {\n
function fn() {\n
var ret;\n
if (value.init) {\n
ret = value.init.apply(global, arguments);\n
}\n
return ret || (value.exports && getGlobal(value.exports));\n
}\n
return fn;\n
},\n
\n
makeRequire: function (relMap, options) {\n
options = options || {};\n
\n
function localRequire(deps, callback, errback) {\n
var id, map, requireMod;\n
\n
if (options.enableBuildCallback && callback && isFunction(callback)) {\n
callback.__requireJsBuild = true;\n
}\n
\n
if (typeof deps === \'string\') {\n
if (isFunction(callback)) {\n
//Invalid call\n
return onError(makeError(\'requireargs\', \'Invalid require call\'), errback);\n
}\n
\n
//If require|exports|module are requested, get the\n
//value for them from the special handlers. Caveat:\n
//this only works while module is being defined.\n
if (relMap && hasProp(handlers, deps)) {\n
return handlers[deps](registry[relMap.id]);\n
}\n
\n
//Synchronous access to one module. If require.get is\n
//available (as in the Node adapter), prefer that.\n
if (req.get) {\n
return req.get(context, deps, relMap);\n
}\n
\n
//Normalize module name, if it contains . or ..\n
map = makeModuleMap(deps, relMap, false, true);\n
id = map.id;\n
\n
if (!hasProp(defined, id)) {\n
return onError(makeError(\'notloaded\', \'Module name "\' +\n
id +\n
\'" has not been loaded yet for context: \' +\n
contextName +\n
(relMap ? \'\' : \'. Use require([])\')));\n
}\n
return defined[id];\n
}\n
\n
//Grab defines waiting in the global queue.\n
intakeDefines();\n
\n
//Mark all the dependencies as needing to be loaded.\n
context.nextTick(function () {\n
//Some defines could have been added since the\n
//require call, collect them.\n
intakeDefines();\n
\n
requireMod = getModule(makeModuleMap(null, relMap));\n
\n
//Store if map config should be applied to this require\n
//call for dependencies.\n
requireMod.skipMap = options.skipMap;\n
\n
requireMod.init(deps, callback, errback, {\n
enabled: true\n
});\n
\n
checkLoaded();\n
});\n
\n
return localRequire;\n
}\n
\n
mixin(localRequire, {\n
isBrowser: isBrowser,\n
\n
/**\n
* Converts a module name + .extension into an URL path.\n
* *Requires* the use of a module name. It does not support using\n
* plain URLs like nameToUrl.\n
*/\n
toUrl: function (moduleNamePlusExt) {\n
var index = moduleNamePlusExt.lastIndexOf(\'.\'),\n
ext = null;\n
\n
if (index !== -1) {\n
ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length);\n
moduleNamePlusExt = moduleNamePlusExt.substring(0, index);\n
}\n
\n
return context.nameToUrl(normalize(moduleNamePlusExt,\n
relMap && relMap.id, true), ext);\n
},\n
\n
defined: function (id) {\n
return hasProp(defined, makeModuleMap(id, relMap, false, true).id);\n
},\n
\n
specified: function (id) {\n
id = makeModuleMap(id, relMap, false, true).id;\n
return hasProp(defined, id) || hasProp(registry, id);\n
}\n
});\n
\n
//Only allow undef on top level require calls\n
if (!relMap) {\n
localRequire.undef = function (id) {\n
//Bind any waiting define() calls to this context,\n
//fix for #408\n
takeGlobalQueue();\n
\n
var map = makeModuleMap(id, relMap, true),\n
mod = getOwn(registry, id);\n
\n
delete defined[id];\n
delete urlFetched[map.url];\n
delete undefEvents[id];\n
\n
if (mod) {\n
//Hold on to listeners in case the\n
//module will be attempted to be reloaded\n
//using a different config.\n
if (mod.events.defined) {\n
undefEvents[id] = mod.events;\n
}\n
\n
cleanRegistry(id);\n
}\n
};\n
}\n
\n
return localRequire;\n
},\n
\n
/**\n
* Called to enable a module if it is still in the registry\n
* awaiting enablement. parent module is passed in for context,\n
* used by the optimizer.\n
*/\n
enable: function (depMap, parent) {\n
var mod = getOwn(registry, depMap.id);\n
if (mod) {\n
getModule(depMap).enable();\n
}\n
},\n
\n
/**\n
* Internal method used by environment adapters to complete a load event.\n
* A load event could be a script load or just a load pass from a synchronous\n
* load call.\n
* @param {String} moduleName the name of the module to potentially complete.\n
*/\n
completeLoad: function (moduleName) {\n
var found, args, mod,\n
shim = getOwn(config.shim, moduleName) || {},\n
shExports = shim.exports;\n
\n
takeGlobalQueue();\n
\n
while (defQueue.length) {\n
args = defQueue.shift();\n
if (args[0] === null) {\n
args[0] = moduleName;\n
//If already found an anonymous module and bound it\n
//to this name, then this is some other anon module\n
//waiting for its completeLoad to fire.\n
if (found) {\n
break;\n
}\n
found = true;\n
} else if (args[0] === moduleName) {\n
//Found matching define call for this script!\n
found = true;\n
}\n
\n
callGetModule(args);\n
}\n
\n
//Do this after the cycle of callGetModule in case the result\n
//of those calls/init calls changes the registry.\n
mod = getOwn(registry, moduleName);\n
\n
if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) {\n
if (config.enforceDefine && (!shExports || !getGlobal(shExports))) {\n
if (hasPathFallback(moduleName)) {\n
return;\n
} else {\n
return onError(makeError(\'nodefine\',\n
\'No define call for \' + moduleName,\n
null,\n
[moduleName]));\n
}\n
} else {\n
//A script that does not call define(), so just simulate\n
//the call for it.\n
callGetModule([moduleName, (shim.deps || []), shim.exportsFn]);\n
}\n
}\n
\n
checkLoaded();\n
},\n
\n
/**\n
* Converts a module name to a file path. Supports cases where\n
* moduleName may actually be just an URL.\n
* Note that it **does not** call normalize on the moduleName,\n
* it is assumed to have already been normalized. This is an\n
* internal API, not a public one. Use toUrl for the public API.\n
*/\n
nameToUrl: function (moduleName, ext) {\n
var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url,\n
parentPath;\n
\n
//If a colon is in the URL, it indicates a protocol is used and it is just\n
//an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?)\n
//or ends with .js, then assume the user meant to use an url and not a module id.\n
//The slash is important for protocol-less URLs as well as full paths.\n
if (req.jsExtRegExp.test(moduleName)) {\n
//Just a plain path, not module name lookup, so just return it.\n
//Add extension if it is included. This is a bit wonky, only non-.js things pass\n
//an extension, this method probably needs to be reworked.\n
url = moduleName + (ext || \'\');\n
} else {\n
//A module that needs to be converted to a path.\n
paths = config.paths;\n
pkgs = config.pkgs;\n
\n
syms = moduleName.split(\'/\');\n
//For each module name segment, see if there is a path\n
//registered for it. Start with most specific name\n
//and work up from it.\n
for (i = syms.length; i > 0; i -= 1) {\n
parentModule = syms.slice(0, i).join(\'/\');\n
pkg = getOwn(pkgs, parentModule);\n
parentPath = getOwn(paths, parentModule);\n
if (parentPath) {\n
//If an array, it means there are a few choices,\n
//Choose the one that is desired\n
if (isArray(parentPath)) {\n
parentPath = parentPath[0];\n
}\n
syms.splice(0, i, parentPath);\n
break;\n
} else if (pkg) {\n
//If module name is just the package name, then looking\n
//for the main module.\n
if (moduleName === pkg.name) {\n
pkgPath = pkg.location + \'/\' + pkg.main;\n
} else {\n
pkgPath = pkg.location;\n
}\n
syms.splice(0, i, pkgPath);\n
break;\n
}\n
}\n
\n
//Join the path parts together, then figure out if baseUrl is needed.\n
url = syms.join(\'/\');\n
url += (ext || (/\\?/.test(url) ? \'\' : \'.js\'));\n
url = (url.charAt(0) === \'/\' || url.match(/^[\\w\\+\\.\\-]+:/) ? \'\' : config.baseUrl) + url;\n
}\n
\n
return config.urlArgs ? url +\n
((url.indexOf(\'?\') === -1 ? \'?\' : \'&\') +\n
config.urlArgs) : url;\n
},\n
\n
//Delegates to req.load. Broken out as a separate function to\n
//allow overriding in the optimizer.\n
load: function (id, url) {\n
req.load(context, id, url);\n
},\n
\n
/**\n
* Executes a module callack function. Broken out as a separate function\n
* solely to allow the build system to sequence the files in the built\n
* layer in the right sequence.\n
*\n
* @private\n
*/\n
execCb: function (name, callback, args, exports) {\n
return callback.apply(exports, args);\n
},\n
\n
/**\n
* callback for script loads, used to check status of loading.\n
*\n
* @param {Event} evt the event from the browser for the script\n
* that was loaded.\n
*/\n
onScriptLoad: function (evt) {\n
//Using currentTarget instead of target for Firefox 2.0\'s sake. Not\n
//all old browsers will be supported, but this one was easy enough\n
//to support and still makes sense.\n
if (evt.type === \'load\' ||\n
(readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) {\n
//Reset interactive script so a script node is not held onto for\n
//to long.\n
interactiveScript = null;\n
\n
//Pull out the name of the module and the context.\n
var data = getScriptData(evt);\n
context.completeLoad(data.id);\n
}\n
},\n
\n
/**\n
* Callback for script errors.\n
*/\n
onScriptError: function (evt) {\n
var data = getScriptData(evt);\n
if (!hasPathFallback(data.id)) {\n
return onError(makeError(\'scripterror\', \'Script error\', evt, [data.id]));\n
}\n
}\n
};\n
\n
context.require = context.makeRequire();\n
return context;\n
}\n
\n
/**\n
* Main entry point.\n
*\n
* If the only argument to require is a string, then the module that\n
* is represented by that string is fetched for the appropriate context.\n
*\n
* If the first argument is an array, then it will be treated as an array\n
* of dependency string names to fetch. An optional function callback can\n
* be specified to execute when all of those dependencies are available.\n
*\n
* Make a local req variable to help Caja compliance (it assumes things\n
* on a require that are not standardized), and to give a short\n
* name for minification/local scope use.\n
*/\n
req = requirejs = function (deps, callback, errback, optional) {\n
\n
//Find the right context, use default\n
var context, config,\n
contextName = defContextName;\n
\n
// Determine if have config object in the call.\n
if (!isArray(deps) && typeof deps !== \'string\') {\n
// deps is a config object\n
config = deps;\n
if (isArray(callback)) {\n
// Adjust args if there are dependencies\n
deps = callback;\n
callback = errback;\n
errback = optional;\n
} else {\n
deps = [];\n
}\n
}\n
\n
if (config && config.context) {\n
contextName = config.context;\n
}\n
\n
context = getOwn(contexts, contextName);\n
if (!context) {\n
context = contexts[contextName] = req.s.newContext(contextName);\n
}\n
\n
if (config) {\n
context.configure(config);\n
}\n
\n
return context.require(deps, callback, errback);\n
};\n
\n
/**\n
* Support require.config() to make it easier to cooperate with other\n
* AMD loaders on globally agreed names.\n
*/\n
req.config = function (config) {\n
return req(config);\n
};\n
\n
/**\n
* Execute something after the current tick\n
* of the event loop. Override for other envs\n
* that have a better solution than setTimeout.\n
* @param {Function} fn function to execute later.\n
*/\n
req.nextTick = typeof setTimeout !== \'undefined\' ? function (fn) {\n
setTimeout(fn, 4);\n
} : function (fn) { fn(); };\n
\n
/**\n
* Export require as a global, but only if it does not already exist.\n
*/\n
if (!require) {\n
require = req;\n
}\n
\n
req.version = version;\n
\n
//Used to filter out dependencies that are already paths.\n
req.jsExtRegExp = /^\\/|:|\\?|\\.js$/;\n
req.isBrowser = isBrowser;\n
s = req.s = {\n
contexts: contexts,\n
newContext: newContext\n
};\n
\n
//Create default context.\n
req({});\n
\n
//Exports some context-sensitive methods on global require.\n
each([\n
\'toUrl\',\n
\'undef\',\n
\'defined\',\n
\'specified\'\n
], function (prop) {\n
//Reference from contexts instead of early binding to default context,\n
//so that during builds, the latest instance of the default context\n
//with its config gets used.\n
req[prop] = function () {\n
var ctx = contexts[defContextName];\n
return ctx.require[prop].apply(ctx, arguments);\n
};\n
});\n
\n
if (isBrowser) {\n
head = s.head = document.getElementsByTagName(\'head\')[0];\n
//If BASE tag is in play, using appendChild is a problem for IE6.\n
//When that browser dies, this can be removed. Details in this jQuery bug:\n
//http://dev.jquery.com/ticket/2709\n
baseElement = document.getElementsByTagName(\'base\')[0];\n
if (baseElement) {\n
head = s.head = baseElement.parentNode;\n
}\n
}\n
\n
/**\n
* Any errors that require explicitly generates will be passed to this\n
* function. Intercept/override it if you want custom error handling.\n
* @param {Error} err the error object.\n
*/\n
req.onError = function (err) {\n
throw err;\n
};\n
\n
/**\n
* Does the request to load a module for the browser case.\n
* Make this a separate function to allow other environments\n
* to override it.\n
*\n
* @param {Object} context the require context to find state.\n
* @param {String} moduleName the name of the module.\n
* @param {Object} url the URL to the module.\n
*/\n
req.load = function (context, moduleName, url) {\n
var config = (context && context.config) || {},\n
node;\n
if (isBrowser) {\n
//In the browser so use a script tag\n
node = config.xhtml ?\n
document.createElementNS(\'http://www.w3.org/1999/xhtml\', \'html:script\') :\n
document.createElement(\'script\');\n
node.type = config.scriptType || \'text/javascript\';\n
node.charset = \'utf-8\';\n
node.async = true;\n
\n
node.setAttribute(\'data-requirecontext\', context.contextName);\n
node.setAttribute(\'data-requiremodule\', moduleName);\n
\n
//Set up load listener. Test attachEvent first because IE9 has\n
//a subtle issue in its addEventListener and script onload firings\n
//that do not match the behavior of all other browsers with\n
//addEventListener support, which fire the onload event for a\n
//script right after the script execution. See:\n
//https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution\n
//UNFORTUNATELY Opera implements attachEvent but does not follow the script\n
//script execution mode.\n
if (node.attachEvent &&\n
//Check if node.attachEvent is artificially added by custom script or\n
//natively supported by browser\n
//read https://github.com/jrburke/requirejs/issues/187\n
//if we can NOT find [native code] then it must NOT natively supported.\n
//in IE8, node.attachEvent does not have toString()\n
//Note the test for "[native code" with no closing brace, see:\n
//https://github.com/jrburke/requirejs/issues/273\n
!(node.attachEvent.toString && node.attachEvent.toString().indexOf(\'[native code\') < 0) &&\n
!isOpera) {\n
//Probably IE. IE (at least 6-8) do not fire\n
//script onload right after executing the script, so\n
//we cannot tie the anonymous define call to a name.\n
//However, IE reports the script as being in \'interactive\'\n
//readyState at the time of the define call.\n
useInteractive = true;\n
\n
node.attachEvent(\'onreadystatechange\', context.onScriptLoad);\n
//It would be great to add an error handler here to catch\n
//404s in IE9+. However, onreadystatechange will fire before\n
//the error handler, so that does not help. If addEvenListener\n
//is used, then IE will fire error before load, but we cannot\n
//use that pathway given the connect.microsoft.com issue\n
//mentioned above about not doing the \'script execute,\n
//then fire the script load event listener before execute\n
//next script\' that other browsers do.\n
//Best hope: IE10 fixes the issues,\n
//and then destroys all installs of IE 6-9.\n
//node.attachEvent(\'onerror\', context.onScriptError);\n
} else {\n
node.addEventListener(\'load\', context.onScriptLoad, false);\n
node.addEventListener(\'error\', context.onScriptError, false);\n
}\n
node.src = url;\n
\n
//For some cache cases in IE 6-8, the script executes before the end\n
//of the appendChild execution, so to tie an anonymous define\n
//call to the module name (which is stored on the node), hold on\n
//to a reference to this node, but clear after the DOM insertion.\n
currentlyAddingScript = node;\n
if (baseElement) {\n
head.insertBefore(node, baseElement);\n
} else {\n
head.appendChild(node);\n
}\n
currentlyAddingScript = null;\n
\n
return node;\n
} else if (isWebWorker) {\n
//In a web worker, use importScripts. This is not a very\n
//efficient use of importScripts, importScripts will block until\n
//its script is downloaded and evaluated. However, if web workers\n
//are in play, the expectation that a build has been done so that\n
//only one script needs to be loaded anyway. This may need to be\n
//reevaluated if other use cases become common.\n
importScripts(url);\n
\n
//Account for anonymous modules\n
context.completeLoad(moduleName);\n
}\n
};\n
\n
function getInteractiveScript() {\n
if (interactiveScript && interactiveScript.readyState === \'interactive\') {\n
return interactiveScript;\n
}\n
\n
eachReverse(scripts(), function (script) {\n
if (script.readyState === \'interactive\') {\n
return (interactiveScript = script);\n
}\n
});\n
return interactiveScript;\n
}\n
\n
//Look for a data-main script attribute, which could also adjust the baseUrl.\n
if (isBrowser) {\n
//Figure out baseUrl. Get it from the script tag with require.js in it.\n
eachReverse(scripts(), function (script) {\n
//Set the \'head\' where we can append children by\n
//using the script\'s parent.\n
if (!head) {\n
head = script.parentNode;\n
}\n
\n
//Look for a data-main attribute to set main script for the page\n
//to load. If it is there, the path to data main becomes the\n
//baseUrl, if it is not already set.\n
dataMain = script.getAttribute(\'data-main\');\n
if (dataMain) {\n
//Set final baseUrl if there is not already an explicit one.\n
if (!cfg.baseUrl) {\n
//Pull off the directory of data-main for use as the\n
//baseUrl.\n
src = dataMain.split(\'/\');\n
mainScript = src.pop();\n
subPath = src.length ? src.join(\'/\') + \'/\' : \'./\';\n
\n
cfg.baseUrl = subPath;\n
dataMain = mainScript;\n
}\n
\n
//Strip off any trailing .js since dataMain is now\n
//like a module name.\n
dataMain = dataMain.replace(jsSuffixRegExp, \'\');\n
\n
//Put the data-main script in the files to load.\n
cfg.deps = cfg.deps ? cfg.deps.concat(dataMain) : [dataMain];\n
\n
return true;\n
}\n
});\n
}\n
\n
/**\n
* The function that handles definitions of modules. Differs from\n
* require() in that a string for the module should be the first argument,\n
* and the function to execute after dependencies are loaded should\n
* return a value to define the module corresponding to the first argument\'s\n
* name.\n
*/\n
define = function (name, deps, callback) {\n
var node, context;\n
\n
//Allow for anonymous modules\n
if (typeof name !== \'string\') {\n
//Adjust args appropriately\n
callback = deps;\n
deps = name;\n
name = null;\n
}\n
\n
//This module may not have dependencies\n
if (!isArray(deps)) {\n
callback = deps;\n
deps = [];\n
}\n
\n
//If no name, and callback is a function, then figure out if it a\n
//CommonJS thing with dependencies.\n
if (!deps.length && isFunction(callback)) {\n
//Remove comments from the callback string,\n
//look for require calls, and pull them into the dependencies,\n
//but only if there are function args.\n
if (callback.length) {\n
callback\n
.toString()\n
.replace(commentRegExp, \'\')\n
.replace(cjsRequireRegExp, function (match, dep) {\n
deps.push(dep);\n
});\n
\n
//May be a CommonJS thing even without require calls, but still\n
//could use exports, and module. Avoid doing exports and module\n
//work though if it just needs require.\n
//REQUIRES the function to expect the CommonJS variables in the\n
//order listed below.\n
deps = (callback.length === 1 ? [\'require\'] : [\'require\', \'exports\', \'module\']).concat(deps);\n
}\n
}\n
\n
//If in IE 6-8 and hit an anonymous define() call, do the interactive\n
//work.\n
if (useInteractive) {\n
node = currentlyAddingScript || getInteractiveScript();\n
if (node) {\n
if (!name) {\n
name = node.getAttribute(\'data-requiremodule\');\n
}\n
context = contexts[node.getAttribute(\'data-requirecontext\')];\n
}\n
}\n
\n
//Always save off evaluating the def call until the script onload handler.\n
//This allows multiple modules to be in a file without prematurely\n
//tracing dependencies, and allows for anonymous module support,\n
//where the module name is not known until the script onload event\n
//occurs. If no context, use the global queue, and get it processed\n
//in the onscript load callback.\n
(context ? context.defQueue : globalDefQueue).push([name, deps, callback]);\n
};\n
\n
define.amd = {\n
jQuery: true\n
};\n
\n
\n
/**\n
* Executes the text. Normally just uses eval, but can be modified\n
* to use a better, environment-specific call. Only used for transpiling\n
* loader plugins, not for plain JS modules.\n
* @param {String} text the text to execute/evaluate.\n
*/\n
req.exec = function (text) {\n
/*jslint evil: true */\n
return eval(text);\n
};\n
\n
//Set up with config info.\n
req(cfg);\n
}(this));\n
]]></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts57908564.31</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>require.min.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
RequireJS 2.1.2 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\n
Available via the MIT or new BSD license.\n
see: http://github.com/jrburke/requirejs for details\n
*/\n
var requirejs,require,define;\n
(function(Y){function H(b){return"[object Function]"===L.call(b)}function I(b){return"[object Array]"===L.call(b)}function x(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function M(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function r(b,c){return da.call(b,c)}function i(b,c){return r(b,c)&&b[c]}function E(b,c){for(var d in b)if(r(b,d)&&c(b[d],d))break}function Q(b,c,d,i){c&&E(c,function(c,h){if(d||!r(b,h))i&&"string"!==typeof c?(b[h]||(b[h]={}),Q(b[h],\n
c,d,i)):b[h]=c});return b}function t(b,c){return function(){return c.apply(b,arguments)}}function Z(b){if(!b)return b;var c=Y;x(b.split("."),function(b){c=c[b]});return c}function J(b,c,d,i){c=Error(c+"\\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=i;d&&(c.originalError=d);return c}function ea(b){function c(a,g,v){var e,n,b,c,d,j,f,h=g&&g.split("/");e=h;var l=m.map,k=l&&l["*"];if(a&&"."===a.charAt(0))if(g){e=i(m.pkgs,g)?h=[g]:h.slice(0,h.length-1);g=a=e.concat(a.split("/"));\n
for(e=0;g[e];e+=1)if(n=g[e],"."===n)g.splice(e,1),e-=1;else if(".."===n)if(1===e&&(".."===g[2]||".."===g[0]))break;else 0<e&&(g.splice(e-1,2),e-=2);e=i(m.pkgs,g=a[0]);a=a.join("/");e&&a===g+"/"+e.main&&(a=g)}else 0===a.indexOf("./")&&(a=a.substring(2));if(v&&(h||k)&&l){g=a.split("/");for(e=g.length;0<e;e-=1){b=g.slice(0,e).join("/");if(h)for(n=h.length;0<n;n-=1)if(v=i(l,h.slice(0,n).join("/")))if(v=i(v,b)){c=v;d=e;break}if(c)break;!j&&(k&&i(k,b))&&(j=i(k,b),f=e)}!c&&j&&(c=j,d=f);c&&(g.splice(0,d,\n
c),a=g.join("/"))}return a}function d(a){z&&x(document.getElementsByTagName("script"),function(g){if(g.getAttribute("data-requiremodule")===a&&g.getAttribute("data-requirecontext")===j.contextName)return g.parentNode.removeChild(g),!0})}function y(a){var g=i(m.paths,a);if(g&&I(g)&&1<g.length)return d(a),g.shift(),j.require.undef(a),j.require([a]),!0}function f(a){var g,b=a?a.indexOf("!"):-1;-1<b&&(g=a.substring(0,b),a=a.substring(b+1,a.length));return[g,a]}function h(a,g,b,e){var n,u,d=null,h=g?g.name:\n
null,l=a,m=!0,k="";a||(m=!1,a="_@r"+(L+=1));a=f(a);d=a[0];a=a[1];d&&(d=c(d,h,e),u=i(p,d));a&&(d?k=u&&u.normalize?u.normalize(a,function(a){return c(a,h,e)}):c(a,h,e):(k=c(a,h,e),a=f(k),d=a[0],k=a[1],b=!0,n=j.nameToUrl(k)));b=d&&!u&&!b?"_unnormalized"+(M+=1):"";return{prefix:d,name:k,parentMap:g,unnormalized:!!b,url:n,originalName:l,isDefine:m,id:(d?d+"!"+k:k)+b}}function q(a){var g=a.id,b=i(k,g);b||(b=k[g]=new j.Module(a));return b}function s(a,g,b){var e=a.id,n=i(k,e);if(r(p,e)&&(!n||n.defineEmitComplete))"defined"===\n
g&&b(p[e]);else q(a).on(g,b)}function C(a,g){var b=a.requireModules,e=!1;if(g)g(a);else if(x(b,function(g){if(g=i(k,g))g.error=a,g.events.error&&(e=!0,g.emit("error",a))}),!e)l.onError(a)}function w(){R.length&&(fa.apply(F,[F.length-1,0].concat(R)),R=[])}function A(a,g,b){var e=a.map.id;a.error?a.emit("error",a.error):(g[e]=!0,x(a.depMaps,function(e,c){var d=e.id,h=i(k,d);h&&(!a.depMatched[c]&&!b[d])&&(i(g,d)?(a.defineDep(c,p[d]),a.check()):A(h,g,b))}),b[e]=!0)}function B(){var a,g,b,e,n=(b=1E3*m.waitSeconds)&&\n
j.startTime+b<(new Date).getTime(),c=[],h=[],f=!1,l=!0;if(!T){T=!0;E(k,function(b){a=b.map;g=a.id;if(b.enabled&&(a.isDefine||h.push(b),!b.error))if(!b.inited&&n)y(g)?f=e=!0:(c.push(g),d(g));else if(!b.inited&&(b.fetched&&a.isDefine)&&(f=!0,!a.prefix))return l=!1});if(n&&c.length)return b=J("timeout","Load timeout for modules: "+c,null,c),b.contextName=j.contextName,C(b);l&&x(h,function(a){A(a,{},{})});if((!n||e)&&f)if((z||$)&&!U)U=setTimeout(function(){U=0;B()},50);T=!1}}function D(a){r(p,a[0])||\n
q(h(a[0],null,!0)).init(a[1],a[2])}function G(a){var a=a.currentTarget||a.srcElement,b=j.onScriptLoad;a.detachEvent&&!V?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=j.onScriptError;(!a.detachEvent||V)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function K(){var a;for(w();F.length;){a=F.shift();if(null===a[0])return C(J("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));D(a)}}var T,W,j,N,U,m={waitSeconds:7,\n
baseUrl:"./",paths:{},pkgs:{},shim:{},map:{},config:{}},k={},X={},F=[],p={},S={},L=1,M=1;N={require:function(a){return a.require?a.require:a.require=j.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?a.exports:a.exports=p[a.map.id]={}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m.config&&i(m.config,a.map.id)||{}},exports:p[a.map.id]}}};W=function(a){this.events=i(X,a.id)||{};this.map=a;this.shim=\n
i(m.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};W.prototype={init:function(a,b,c,e){e=e||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=t(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=e.ignore;e.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=\n
b)},fetch:function(){if(!this.fetched){this.fetched=!0;j.startTime=(new Date).getTime();var a=this.map;if(this.shim)j.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],t(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,j.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var e=this.exports,n=this.factory;\n
if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(H(n)){if(this.events.error)try{e=j.execCb(c,n,b,e)}catch(d){a=d}else e=j.execCb(c,n,b,e);this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==this.exports?e=b.exports:void 0===e&&this.usingExports&&(e=this.exports));if(a)return a.requireMap=this.map,a.requireModules=[this.map.id],a.requireType="define",C(this.error=a)}else e=n;this.exports=e;if(this.map.isDefine&&\n
!this.ignore&&(p[c]=e,l.onResourceLoad))l.onResourceLoad(j,this.map,this.depMaps);delete k[c];this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=h(a.prefix);this.depMaps.push(d);s(d,"defined",t(this,function(e){var n,d;d=this.map.name;var v=this.map.parentMap?this.map.parentMap.name:null,f=j.makeRequire(a.parentMap,{enableBuildCallback:!0,\n
skipMap:!0});if(this.map.unnormalized){if(e.normalize&&(d=e.normalize(d,function(a){return c(a,v,!0)})||""),e=h(a.prefix+"!"+d,this.map.parentMap),s(e,"defined",t(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=i(k,e.id)){this.depMaps.push(e);if(this.events.error)d.on("error",t(this,function(a){this.emit("error",a)}));d.enable()}}else n=t(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),n.error=t(this,function(a){this.inited=!0;this.error=\n
a;a.requireModules=[b];E(k,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&delete k[a.map.id]});C(a)}),n.fromText=t(this,function(e,c){var d=a.name,u=h(d),v=O;c&&(e=c);v&&(O=!1);q(u);r(m.config,b)&&(m.config[d]=m.config[b]);try{l.exec(e)}catch(k){throw Error("fromText eval for "+d+" failed: "+k);}v&&(O=!0);this.depMaps.push(u);j.completeLoad(d);f([d],n)}),e.load(a.name,f,n,m)}));j.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){this.enabling=this.enabled=!0;x(this.depMaps,t(this,function(a,\n
b){var c,e;if("string"===typeof a){a=h(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=i(N,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",t(this,function(a){this.defineDep(b,a);this.check()}));this.errback&&s(a,"error",this.errback)}c=a.id;e=k[c];!r(N,c)&&(e&&!e.enabled)&&j.enable(a,this)}));E(this.pluginMaps,t(this,function(a){var b=i(k,a.id);b&&!b.enabled&&j.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=\n
this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){x(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};j={config:m,contextName:b,registry:k,defined:p,urlFetched:S,defQueue:F,Module:W,makeModuleMap:h,nextTick:l.nextTick,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=m.pkgs,c=m.shim,e={paths:!0,config:!0,map:!0};E(a,function(a,b){e[b]?"map"===b?Q(m[b],a,!0,!0):Q(m[b],a,!0):m[b]=a});a.shim&&(E(a.shim,function(a,\n
b){I(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=j.makeShimExports(a);c[b]=a}),m.shim=c);a.packages&&(x(a.packages,function(a){a="string"===typeof a?{name:a}:a;b[a.name]={name:a.name,location:a.location||a.name,main:(a.main||"main").replace(ga,"").replace(aa,"")}}),m.pkgs=b);E(k,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=h(b))});if(a.deps||a.callback)j.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(Y,arguments));\n
return b||a.exports&&Z(a.exports)}},makeRequire:function(a,d){function f(e,c,u){var i,m;d.enableBuildCallback&&(c&&H(c))&&(c.__requireJsBuild=!0);if("string"===typeof e){if(H(c))return C(J("requireargs","Invalid require call"),u);if(a&&r(N,e))return N[e](k[a.id]);if(l.get)return l.get(j,e,a);i=h(e,a,!1,!0);i=i.id;return!r(p,i)?C(J("notloaded",\'Module name "\'+i+\'" has not been loaded yet for context: \'+b+(a?"":". Use require([])"))):p[i]}K();j.nextTick(function(){K();m=q(h(null,a));m.skipMap=d.skipMap;\n
m.init(e,c,u,{enabled:!0});B()});return f}d=d||{};Q(f,{isBrowser:z,toUrl:function(b){var d=b.lastIndexOf("."),g=null;-1!==d&&(g=b.substring(d,b.length),b=b.substring(0,d));return j.nameToUrl(c(b,a&&a.id,!0),g)},defined:function(b){return r(p,h(b,a,!1,!0).id)},specified:function(b){b=h(b,a,!1,!0).id;return r(p,b)||r(k,b)}});a||(f.undef=function(b){w();var c=h(b,a,!0),d=i(k,b);delete p[b];delete S[c.url];delete X[b];d&&(d.events.defined&&(X[b]=d.events),delete k[b])});return f},enable:function(a){i(k,\n
a.id)&&q(a).enable()},completeLoad:function(a){var b,c,d=i(m.shim,a)||{},h=d.exports;for(w();F.length;){c=F.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);D(c)}c=i(k,a);if(!b&&!r(p,a)&&c&&!c.inited){if(m.enforceDefine&&(!h||!Z(h)))return y(a)?void 0:C(J("nodefine","No define call for "+a,null,[a]));D([a,d.deps||[],d.exportsFn])}B()},nameToUrl:function(a,b){var c,d,h,f,j,k;if(l.jsExtRegExp.test(a))f=a+(b||"");else{c=m.paths;d=m.pkgs;f=a.split("/");for(j=f.length;0<j;j-=1)if(k=\n
f.slice(0,j).join("/"),h=i(d,k),k=i(c,k)){I(k)&&(k=k[0]);f.splice(0,j,k);break}else if(h){c=a===h.name?h.location+"/"+h.main:h.location;f.splice(0,j,c);break}f=f.join("/");f+=b||(/\\?/.test(f)?"":".js");f=("/"===f.charAt(0)||f.match(/^[\\w\\+\\.\\-]+:/)?"":m.baseUrl)+f}return m.urlArgs?f+((-1===f.indexOf("?")?"?":"&")+m.urlArgs):f},load:function(a,b){l.load(j,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ha.test((a.currentTarget||a.srcElement).readyState))P=\n
null,a=G(a),j.completeLoad(a.id)},onScriptError:function(a){var b=G(a);if(!y(b.id))return C(J("scripterror","Script error",a,[b.id]))}};j.require=j.makeRequire();return j}var l,w,A,D,s,G,P,K,ba,ca,ia=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,ja=/[^.]\\s*require\\s*\\(\\s*["\']([^\'"\\s]+)["\']\\s*\\)/g,aa=/\\.js$/,ga=/^\\.\\//;w=Object.prototype;var L=w.toString,da=w.hasOwnProperty,fa=Array.prototype.splice,z=!!("undefined"!==typeof window&&navigator&&document),$=!z&&"undefined"!==typeof importScripts,ha=z&&\n
"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,V="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),B={},q={},R=[],O=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(H(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!H(require)&&(q=require,require=void 0);l=requirejs=function(b,c,d,y){var f,h="_";!I(b)&&"string"!==typeof b&&(f=b,I(c)?(b=c,c=d,d=y):b=[]);f&&f.context&&(h=f.context);(y=i(B,h))||(y=B[h]=l.s.newContext(h));\n
f&&y.configure(f);return y.require(b,c,d)};l.config=function(b){return l(b)};l.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=l);l.version="2.1.2";l.jsExtRegExp=/^\\/|:|\\?|\\.js$/;l.isBrowser=z;w=l.s={contexts:B,newContext:ea};l({});x(["toUrl","undef","defined","specified"],function(b){l[b]=function(){var c=B._;return c.require[b].apply(c,arguments)}});if(z&&(A=w.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))A=\n
w.head=D.parentNode;l.onError=function(b){throw b;};l.load=function(b,c,d){var i=b&&b.config||{},f;if(z)return f=i.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),f.type=i.scriptType||"text/javascript",f.charset="utf-8",f.async=!0,f.setAttribute("data-requirecontext",b.contextName),f.setAttribute("data-requiremodule",c),f.attachEvent&&!(f.attachEvent.toString&&0>f.attachEvent.toString().indexOf("[native code"))&&!V?(O=!0,f.attachEvent("onreadystatechange",\n
b.onScriptLoad)):(f.addEventListener("load",b.onScriptLoad,!1),f.addEventListener("error",b.onScriptError,!1)),f.src=d,K=f,D?A.insertBefore(f,D):A.appendChild(f),K=null,f;$&&(importScripts(d),b.completeLoad(c))};z&&M(document.getElementsByTagName("script"),function(b){A||(A=b.parentNode);if(s=b.getAttribute("data-main"))return q.baseUrl||(G=s.split("/"),ba=G.pop(),ca=G.length?G.join("/")+"/":"./",q.baseUrl=ca,s=ba),s=s.replace(aa,""),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var i,\n
f;"string"!==typeof b&&(d=c,c=b,b=null);I(c)||(d=c,c=[]);!c.length&&H(d)&&d.length&&(d.toString().replace(ia,"").replace(ja,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c));if(O){if(!(i=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),i=P;i&&(b||(b=i.getAttribute("data-requiremodule")),f=B[i.getAttribute("data-requirecontext")])}(f?f.defQueue:R).push([b,c,d])};define.amd=\n
{jQuery:!0};l.exec=function(b){return eval(b)};l(q)}})(this);\n
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>14537</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>require.min.js</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
2013-01-14 Kazuhiko
* add RequireJS 2.1.2.
2012-10-16 arnaud.fontaine
* Fix background color of stat and no cell ListBox lines.
......
1091
\ No newline at end of file
1092
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment