dojo-rails 0.9.8 → 0.9.9
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +18 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/Rakefile +3 -0
- data/dojo-rails.gemspec +20 -0
- data/lib/dojo-rails.rb +1 -0
- data/lib/dojo/rails.rb +2 -0
- data/lib/dojo/rails/engine.rb +6 -0
- data/lib/dojo/rails/version.rb +9 -0
- data/lib/dojo/version.rb +7 -0
- data/vendor/assets/javascripts/dojo.js +15 -0
- data/vendor/assets/javascripts/dojo/AdapterRegistry.js +38 -0
- data/vendor/assets/javascripts/dojo/AdapterRegistry.js.uncompressed.js +113 -0
- data/vendor/assets/javascripts/dojo/DeferredList.js +57 -0
- data/vendor/assets/javascripts/dojo/DeferredList.js.uncompressed.js +86 -0
- data/vendor/assets/javascripts/dojo/Evented.js +23 -0
- data/vendor/assets/javascripts/dojo/Evented.js.uncompressed.js +32 -0
- data/vendor/assets/javascripts/dojo/LICENSE +195 -0
- data/vendor/assets/javascripts/dojo/NodeList-data.js +59 -0
- data/vendor/assets/javascripts/dojo/NodeList-data.js.uncompressed.js +181 -0
- data/vendor/assets/javascripts/dojo/NodeList-dom.js +122 -0
- data/vendor/assets/javascripts/dojo/NodeList-dom.js.uncompressed.js +454 -0
- data/vendor/assets/javascripts/dojo/NodeList-fx.js +39 -0
- data/vendor/assets/javascripts/dojo/NodeList-fx.js.uncompressed.js +222 -0
- data/vendor/assets/javascripts/dojo/NodeList-html.js +20 -0
- data/vendor/assets/javascripts/dojo/NodeList-html.js.uncompressed.js +55 -0
- data/vendor/assets/javascripts/dojo/NodeList-manipulate.js +210 -0
- data/vendor/assets/javascripts/dojo/NodeList-manipulate.js.uncompressed.js +730 -0
- data/vendor/assets/javascripts/dojo/NodeList-traverse.js +124 -0
- data/vendor/assets/javascripts/dojo/NodeList-traverse.js.uncompressed.js +508 -0
- data/vendor/assets/javascripts/dojo/OpenAjax.js +194 -0
- data/vendor/assets/javascripts/dojo/Stateful.js +67 -0
- data/vendor/assets/javascripts/dojo/Stateful.js.uncompressed.js +139 -0
- data/vendor/assets/javascripts/dojo/_base/Color.js +96 -0
- data/vendor/assets/javascripts/dojo/_base/Color.js.uncompressed.js +220 -0
- data/vendor/assets/javascripts/dojo/_base/Deferred.js +129 -0
- data/vendor/assets/javascripts/dojo/_base/Deferred.js.uncompressed.js +366 -0
- data/vendor/assets/javascripts/dojo/_base/NodeList.js +24 -0
- data/vendor/assets/javascripts/dojo/_base/NodeList.js.uncompressed.js +100 -0
- data/vendor/assets/javascripts/dojo/_base/array.js +142 -0
- data/vendor/assets/javascripts/dojo/_base/array.js.uncompressed.js +343 -0
- data/vendor/assets/javascripts/dojo/_base/browser.js +13 -0
- data/vendor/assets/javascripts/dojo/_base/browser.js.uncompressed.js +21 -0
- data/vendor/assets/javascripts/dojo/_base/config.js +26 -0
- data/vendor/assets/javascripts/dojo/_base/config.js.uncompressed.js +174 -0
- data/vendor/assets/javascripts/dojo/_base/configFirefoxExtension.js +334 -0
- data/vendor/assets/javascripts/dojo/_base/configNode.js +87 -0
- data/vendor/assets/javascripts/dojo/_base/configRhino.js +121 -0
- data/vendor/assets/javascripts/dojo/_base/configSpidermonkey.js +84 -0
- data/vendor/assets/javascripts/dojo/_base/connect.js +163 -0
- data/vendor/assets/javascripts/dojo/_base/connect.js.uncompressed.js +400 -0
- data/vendor/assets/javascripts/dojo/_base/declare.js +430 -0
- data/vendor/assets/javascripts/dojo/_base/declare.js.uncompressed.js +1050 -0
- data/vendor/assets/javascripts/dojo/_base/event.js +36 -0
- data/vendor/assets/javascripts/dojo/_base/event.js.uncompressed.js +51 -0
- data/vendor/assets/javascripts/dojo/_base/fx.js +295 -0
- data/vendor/assets/javascripts/dojo/_base/fx.js.uncompressed.js +666 -0
- data/vendor/assets/javascripts/dojo/_base/html.js +88 -0
- data/vendor/assets/javascripts/dojo/_base/html.js.uncompressed.js +389 -0
- data/vendor/assets/javascripts/dojo/_base/json.js +26 -0
- data/vendor/assets/javascripts/dojo/_base/json.js.uncompressed.js +85 -0
- data/vendor/assets/javascripts/dojo/_base/kernel.js +114 -0
- data/vendor/assets/javascripts/dojo/_base/kernel.js.uncompressed.js +302 -0
- data/vendor/assets/javascripts/dojo/_base/lang.js +178 -0
- data/vendor/assets/javascripts/dojo/_base/lang.js.uncompressed.js +707 -0
- data/vendor/assets/javascripts/dojo/_base/loader.js +258 -0
- data/vendor/assets/javascripts/dojo/_base/loader.js.uncompressed.js +718 -0
- data/vendor/assets/javascripts/dojo/_base/query.js +10 -0
- data/vendor/assets/javascripts/dojo/_base/query.js.uncompressed.js +3 -0
- data/vendor/assets/javascripts/dojo/_base/sniff.js +68 -0
- data/vendor/assets/javascripts/dojo/_base/sniff.js.uncompressed.js +187 -0
- data/vendor/assets/javascripts/dojo/_base/unload.js +21 -0
- data/vendor/assets/javascripts/dojo/_base/unload.js.uncompressed.js +81 -0
- data/vendor/assets/javascripts/dojo/_base/url.js +88 -0
- data/vendor/assets/javascripts/dojo/_base/url.js.uncompressed.js +111 -0
- data/vendor/assets/javascripts/dojo/_base/window.js +55 -0
- data/vendor/assets/javascripts/dojo/_base/window.js.uncompressed.js +126 -0
- data/vendor/assets/javascripts/dojo/_base/xhr.js +381 -0
- data/vendor/assets/javascripts/dojo/_base/xhr.js.uncompressed.js +830 -0
- data/vendor/assets/javascripts/dojo/_firebug/LICENSE +37 -0
- data/vendor/assets/javascripts/dojo/_firebug/errorIcon.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/firebug.css +208 -0
- data/vendor/assets/javascripts/dojo/_firebug/firebug.js +897 -0
- data/vendor/assets/javascripts/dojo/_firebug/firebug.js.uncompressed.js +1183 -0
- data/vendor/assets/javascripts/dojo/_firebug/infoIcon.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/tab_lft_norm.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/tab_lft_over.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_norm.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_over.png +0 -0
- data/vendor/assets/javascripts/dojo/_firebug/warningIcon.png +0 -0
- data/vendor/assets/javascripts/dojo/aspect.js +98 -0
- data/vendor/assets/javascripts/dojo/aspect.js.uncompressed.js +207 -0
- data/vendor/assets/javascripts/dojo/back.js +238 -0
- data/vendor/assets/javascripts/dojo/back.js.uncompressed.js +397 -0
- data/vendor/assets/javascripts/dojo/behavior.js +92 -0
- data/vendor/assets/javascripts/dojo/behavior.js.uncompressed.js +248 -0
- data/vendor/assets/javascripts/dojo/cache.js +10 -0
- data/vendor/assets/javascripts/dojo/cache.js.uncompressed.js +9 -0
- data/vendor/assets/javascripts/dojo/cldr/LICENSE +29 -0
- data/vendor/assets/javascripts/dojo/cldr/README +18 -0
- data/vendor/assets/javascripts/dojo/cldr/monetary.js +23 -0
- data/vendor/assets/javascripts/dojo/cldr/monetary.js.uncompressed.js +35 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js.uncompressed.js +115 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js.uncompressed.js +240 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js.uncompressed.js +124 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js.uncompressed.js +18 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js.uncompressed.js +267 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js.uncompressed.js +235 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js.uncompressed.js +215 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/currency.js.uncompressed.js +48 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js.uncompressed.js +141 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js.uncompressed.js +237 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js.uncompressed.js +87 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js.uncompressed.js +130 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js.uncompressed.js +237 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js.uncompressed.js +172 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js.uncompressed.js +120 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js.uncompressed.js +241 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js.uncompressed.js +73 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js.uncompressed.js +20 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js.uncompressed.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js.uncompressed.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js.uncompressed.js +20 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js.uncompressed.js +101 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js.uncompressed.js +23 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js.uncompressed.js +153 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js.uncompressed.js +109 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js.uncompressed.js +229 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js.uncompressed.js +166 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js.uncompressed.js +23 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js.uncompressed.js +125 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js.uncompressed.js +238 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js.uncompressed.js +179 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js.uncompressed.js +21 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js.uncompressed.js +166 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js.uncompressed.js +239 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js.uncompressed.js +176 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js.uncompressed.js +155 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js.uncompressed.js +9 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js.uncompressed.js +9 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js.uncompressed.js +23 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js.uncompressed.js +247 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js.uncompressed.js +294 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js.uncompressed.js +213 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js.uncompressed.js +125 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js.uncompressed.js +119 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js.uncompressed.js +265 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js.uncompressed.js +227 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js.uncompressed.js +21 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js.uncompressed.js +264 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js.uncompressed.js +235 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js.uncompressed.js +12 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js.uncompressed.js +18 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js.uncompressed.js +222 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js.uncompressed.js +12 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js.uncompressed.js +243 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js.uncompressed.js +23 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js.uncompressed.js +234 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js.uncompressed.js +233 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/number.js.uncompressed.js +64 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js.uncompressed.js +242 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js.uncompressed.js +141 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js.uncompressed.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js.uncompressed.js +237 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js.uncompressed.js +121 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js.uncompressed.js +251 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js.uncompressed.js +232 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js.uncompressed.js +21 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js.uncompressed.js +225 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js.uncompressed.js +9 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js.uncompressed.js +218 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js.uncompressed.js +18 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js.uncompressed.js +245 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js.uncompressed.js +118 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js.uncompressed.js +232 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js.uncompressed.js +17 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js.uncompressed.js +239 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js.uncompressed.js +22 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js.uncompressed.js +146 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js.uncompressed.js +228 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js.uncompressed.js +87 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js.uncompressed.js +15 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js.uncompressed.js +85 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js.uncompressed.js +14 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js.uncompressed.js +80 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js.uncompressed.js +16 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js.uncompressed.js +247 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js +8 -0
- data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js.uncompressed.js +12 -0
- data/vendor/assets/javascripts/dojo/cldr/supplemental.js +44 -0
- data/vendor/assets/javascripts/dojo/cldr/supplemental.js.uncompressed.js +77 -0
- data/vendor/assets/javascripts/dojo/colors.js +74 -0
- data/vendor/assets/javascripts/dojo/colors.js.uncompressed.js +232 -0
- data/vendor/assets/javascripts/dojo/cookie.js +49 -0
- data/vendor/assets/javascripts/dojo/cookie.js.uncompressed.js +98 -0
- data/vendor/assets/javascripts/dojo/currency.js +32 -0
- data/vendor/assets/javascripts/dojo/currency.js.uncompressed.js +132 -0
- data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js +561 -0
- data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js.uncompressed.js +945 -0
- data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js +499 -0
- data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js.uncompressed.js +805 -0
- data/vendor/assets/javascripts/dojo/data/ObjectStore.js +285 -0
- data/vendor/assets/javascripts/dojo/data/ObjectStore.js.uncompressed.js +505 -0
- data/vendor/assets/javascripts/dojo/data/api/Identity.js +21 -0
- data/vendor/assets/javascripts/dojo/data/api/Identity.js.uncompressed.js +107 -0
- data/vendor/assets/javascripts/dojo/data/api/Notification.js +19 -0
- data/vendor/assets/javascripts/dojo/data/api/Notification.js.uncompressed.js +122 -0
- data/vendor/assets/javascripts/dojo/data/api/Read.js +39 -0
- data/vendor/assets/javascripts/dojo/data/api/Read.js.uncompressed.js +485 -0
- data/vendor/assets/javascripts/dojo/data/api/Request.js +13 -0
- data/vendor/assets/javascripts/dojo/data/api/Request.js.uncompressed.js +36 -0
- data/vendor/assets/javascripts/dojo/data/api/Write.js +29 -0
- data/vendor/assets/javascripts/dojo/data/api/Write.js.uncompressed.js +221 -0
- data/vendor/assets/javascripts/dojo/data/util/filter.js +52 -0
- data/vendor/assets/javascripts/dojo/data/util/filter.js.uncompressed.js +74 -0
- data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js +63 -0
- data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js.uncompressed.js +95 -0
- data/vendor/assets/javascripts/dojo/data/util/sorter.js +66 -0
- data/vendor/assets/javascripts/dojo/data/util/sorter.js.uncompressed.js +99 -0
- data/vendor/assets/javascripts/dojo/date.js +213 -0
- data/vendor/assets/javascripts/dojo/date.js.uncompressed.js +347 -0
- data/vendor/assets/javascripts/dojo/date/locale.js +452 -0
- data/vendor/assets/javascripts/dojo/date/locale.js.uncompressed.js +670 -0
- data/vendor/assets/javascripts/dojo/date/stamp.js +82 -0
- data/vendor/assets/javascripts/dojo/date/stamp.js.uncompressed.js +146 -0
- data/vendor/assets/javascripts/dojo/dnd/AutoSource.js +12 -0
- data/vendor/assets/javascripts/dojo/dnd/AutoSource.js.uncompressed.js +13 -0
- data/vendor/assets/javascripts/dojo/dnd/Avatar.js +62 -0
- data/vendor/assets/javascripts/dojo/dnd/Avatar.js.uncompressed.js +111 -0
- data/vendor/assets/javascripts/dojo/dnd/Container.js +231 -0
- data/vendor/assets/javascripts/dojo/dnd/Container.js.uncompressed.js +432 -0
- data/vendor/assets/javascripts/dojo/dnd/Manager.js +122 -0
- data/vendor/assets/javascripts/dojo/dnd/Manager.js.uncompressed.js +213 -0
- data/vendor/assets/javascripts/dojo/dnd/Moveable.js +75 -0
- data/vendor/assets/javascripts/dojo/dnd/Moveable.js.uncompressed.js +173 -0
- data/vendor/assets/javascripts/dojo/dnd/Mover.js +62 -0
- data/vendor/assets/javascripts/dojo/dnd/Mover.js.uncompressed.js +119 -0
- data/vendor/assets/javascripts/dojo/dnd/Selector.js +233 -0
- data/vendor/assets/javascripts/dojo/dnd/Selector.js.uncompressed.js +324 -0
- data/vendor/assets/javascripts/dojo/dnd/Source.js +284 -0
- data/vendor/assets/javascripts/dojo/dnd/Source.js.uncompressed.js +513 -0
- data/vendor/assets/javascripts/dojo/dnd/Target.js +13 -0
- data/vendor/assets/javascripts/dojo/dnd/Target.js.uncompressed.js +13 -0
- data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js +34 -0
- data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js.uncompressed.js +69 -0
- data/vendor/assets/javascripts/dojo/dnd/autoscroll.js +96 -0
- data/vendor/assets/javascripts/dojo/dnd/autoscroll.js.uncompressed.js +118 -0
- data/vendor/assets/javascripts/dojo/dnd/common.js +28 -0
- data/vendor/assets/javascripts/dojo/dnd/common.js.uncompressed.js +35 -0
- data/vendor/assets/javascripts/dojo/dnd/move.js +66 -0
- data/vendor/assets/javascripts/dojo/dnd/move.js.uncompressed.js +143 -0
- data/vendor/assets/javascripts/dojo/dojo.js +1872 -0
- data/vendor/assets/javascripts/dojo/dojo.js.uncompressed.js +16408 -0
- data/vendor/assets/javascripts/dojo/dojo.profile.js +40 -0
- data/vendor/assets/javascripts/dojo/dom-attr.js +62 -0
- data/vendor/assets/javascripts/dojo/dom-attr.js.uncompressed.js +238 -0
- data/vendor/assets/javascripts/dojo/dom-class.js +89 -0
- data/vendor/assets/javascripts/dojo/dom-class.js.uncompressed.js +320 -0
- data/vendor/assets/javascripts/dojo/dom-construct.js +141 -0
- data/vendor/assets/javascripts/dojo/dom-construct.js.uncompressed.js +376 -0
- data/vendor/assets/javascripts/dojo/dom-form.js +81 -0
- data/vendor/assets/javascripts/dojo/dom-form.js.uncompressed.js +166 -0
- data/vendor/assets/javascripts/dojo/dom-geometry.js +214 -0
- data/vendor/assets/javascripts/dojo/dom-geometry.js.uncompressed.js +751 -0
- data/vendor/assets/javascripts/dojo/dom-prop.js +69 -0
- data/vendor/assets/javascripts/dojo/dom-prop.js.uncompressed.js +190 -0
- data/vendor/assets/javascripts/dojo/dom-style.js +158 -0
- data/vendor/assets/javascripts/dojo/dom-style.js.uncompressed.js +321 -0
- data/vendor/assets/javascripts/dojo/dom.js +74 -0
- data/vendor/assets/javascripts/dojo/dom.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/domReady.js +95 -0
- data/vendor/assets/javascripts/dojo/domReady.js.uncompressed.js +95 -0
- data/vendor/assets/javascripts/dojo/fx.js +260 -0
- data/vendor/assets/javascripts/dojo/fx.js.uncompressed.js +426 -0
- data/vendor/assets/javascripts/dojo/fx/Toggler.js +28 -0
- data/vendor/assets/javascripts/dojo/fx/Toggler.js.uncompressed.js +103 -0
- data/vendor/assets/javascripts/dojo/fx/easing.js +166 -0
- data/vendor/assets/javascripts/dojo/fx/easing.js.uncompressed.js +284 -0
- data/vendor/assets/javascripts/dojo/gears.js +44 -0
- data/vendor/assets/javascripts/dojo/gears.js.uncompressed.js +61 -0
- data/vendor/assets/javascripts/dojo/has.js +66 -0
- data/vendor/assets/javascripts/dojo/has.js.uncompressed.js +178 -0
- data/vendor/assets/javascripts/dojo/hash.js +137 -0
- data/vendor/assets/javascripts/dojo/hash.js.uncompressed.js +243 -0
- data/vendor/assets/javascripts/dojo/html.js +148 -0
- data/vendor/assets/javascripts/dojo/html.js.uncompressed.js +342 -0
- data/vendor/assets/javascripts/dojo/i18n.js +211 -0
- data/vendor/assets/javascripts/dojo/i18n.js.uncompressed.js +514 -0
- data/vendor/assets/javascripts/dojo/io-query.js +53 -0
- data/vendor/assets/javascripts/dojo/io-query.js.uncompressed.js +98 -0
- data/vendor/assets/javascripts/dojo/io/iframe.js +230 -0
- data/vendor/assets/javascripts/dojo/io/iframe.js.uncompressed.js +376 -0
- data/vendor/assets/javascripts/dojo/io/script.js +114 -0
- data/vendor/assets/javascripts/dojo/io/script.js.uncompressed.js +256 -0
- data/vendor/assets/javascripts/dojo/jaxer.js +18 -0
- data/vendor/assets/javascripts/dojo/jaxer.js.uncompressed.js +19 -0
- data/vendor/assets/javascripts/dojo/json.js +102 -0
- data/vendor/assets/javascripts/dojo/json.js.uncompressed.js +149 -0
- data/vendor/assets/javascripts/dojo/keys.js +10 -0
- data/vendor/assets/javascripts/dojo/keys.js.uncompressed.js +80 -0
- data/vendor/assets/javascripts/dojo/loadInit.js +12 -0
- data/vendor/assets/javascripts/dojo/loadInit.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/main.js +29 -0
- data/vendor/assets/javascripts/dojo/main.js.uncompressed.js +50 -0
- data/vendor/assets/javascripts/dojo/mouse.js +48 -0
- data/vendor/assets/javascripts/dojo/mouse.js.uncompressed.js +127 -0
- data/vendor/assets/javascripts/dojo/nls/ar/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ar/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/az/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/az/colors.js.uncompressed.js +153 -0
- data/vendor/assets/javascripts/dojo/nls/ca/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ca/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/colors.js.uncompressed.js +191 -0
- data/vendor/assets/javascripts/dojo/nls/cs/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/cs/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/da/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/da/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/de/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/de/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/el/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/el/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/es/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/es/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/fi/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/fi/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/fr/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/fr/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/he/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/he/colors.js.uncompressed.js +158 -0
- data/vendor/assets/javascripts/dojo/nls/hr/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/hr/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/hu/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/hu/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/it/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/it/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/ja/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ja/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/kk/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/kk/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/ko/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ko/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/nb/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/nb/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/nl/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/nl/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/pl/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/pl/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/pt/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/pt/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/ro/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ro/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/ru/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/ru/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/sk/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/sk/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/sl/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/sl/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/sv/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/sv/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/th/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/th/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/tr/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/tr/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/nls/zh/colors.js +8 -0
- data/vendor/assets/javascripts/dojo/nls/zh/colors.js.uncompressed.js +156 -0
- data/vendor/assets/javascripts/dojo/number.js +305 -0
- data/vendor/assets/javascripts/dojo/number.js.uncompressed.js +576 -0
- data/vendor/assets/javascripts/dojo/on.js +311 -0
- data/vendor/assets/javascripts/dojo/on.js.uncompressed.js +474 -0
- data/vendor/assets/javascripts/dojo/package.json +23 -0
- data/vendor/assets/javascripts/dojo/parser.js +299 -0
- data/vendor/assets/javascripts/dojo/parser.js.uncompressed.js +594 -0
- data/vendor/assets/javascripts/dojo/query.js +195 -0
- data/vendor/assets/javascripts/dojo/query.js.uncompressed.js +713 -0
- data/vendor/assets/javascripts/dojo/ready.js +82 -0
- data/vendor/assets/javascripts/dojo/ready.js.uncompressed.js +138 -0
- data/vendor/assets/javascripts/dojo/regexp.js +32 -0
- data/vendor/assets/javascripts/dojo/regexp.js.uncompressed.js +73 -0
- data/vendor/assets/javascripts/dojo/require.js +12 -0
- data/vendor/assets/javascripts/dojo/require.js.uncompressed.js +7 -0
- data/vendor/assets/javascripts/dojo/resources/LICENSE +30 -0
- data/vendor/assets/javascripts/dojo/resources/_modules.js +36 -0
- data/vendor/assets/javascripts/dojo/resources/blank.gif +0 -0
- data/vendor/assets/javascripts/dojo/resources/blank.html +1 -0
- data/vendor/assets/javascripts/dojo/resources/dnd.css +14 -0
- data/vendor/assets/javascripts/dojo/resources/dojo.css +98 -0
- data/vendor/assets/javascripts/dojo/resources/iframe_history.html +44 -0
- data/vendor/assets/javascripts/dojo/resources/images/dndCopy.png +0 -0
- data/vendor/assets/javascripts/dojo/resources/images/dndMove.png +0 -0
- data/vendor/assets/javascripts/dojo/resources/images/dndNoCopy.png +0 -0
- data/vendor/assets/javascripts/dojo/resources/images/dndNoMove.png +0 -0
- data/vendor/assets/javascripts/dojo/rpc/JsonService.js +34 -0
- data/vendor/assets/javascripts/dojo/rpc/JsonService.js.uncompressed.js +85 -0
- data/vendor/assets/javascripts/dojo/rpc/JsonpService.js +29 -0
- data/vendor/assets/javascripts/dojo/rpc/JsonpService.js.uncompressed.js +67 -0
- data/vendor/assets/javascripts/dojo/rpc/RpcService.js +87 -0
- data/vendor/assets/javascripts/dojo/rpc/RpcService.js.uncompressed.js +175 -0
- data/vendor/assets/javascripts/dojo/selector/_loader.js +40 -0
- data/vendor/assets/javascripts/dojo/selector/_loader.js.uncompressed.js +45 -0
- data/vendor/assets/javascripts/dojo/selector/acme.js +765 -0
- data/vendor/assets/javascripts/dojo/selector/acme.js.uncompressed.js +1480 -0
- data/vendor/assets/javascripts/dojo/selector/lite.js +213 -0
- data/vendor/assets/javascripts/dojo/selector/lite.js.uncompressed.js +264 -0
- data/vendor/assets/javascripts/dojo/store/Cache.js +47 -0
- data/vendor/assets/javascripts/dojo/store/Cache.js.uncompressed.js +148 -0
- data/vendor/assets/javascripts/dojo/store/DataStore.js +103 -0
- data/vendor/assets/javascripts/dojo/store/DataStore.js.uncompressed.js +170 -0
- data/vendor/assets/javascripts/dojo/store/JsonRest.js +56 -0
- data/vendor/assets/javascripts/dojo/store/JsonRest.js.uncompressed.js +155 -0
- data/vendor/assets/javascripts/dojo/store/Memory.js +55 -0
- data/vendor/assets/javascripts/dojo/store/Memory.js.uncompressed.js +161 -0
- data/vendor/assets/javascripts/dojo/store/Observable.js +125 -0
- data/vendor/assets/javascripts/dojo/store/Observable.js.uncompressed.js +175 -0
- data/vendor/assets/javascripts/dojo/store/README +10 -0
- data/vendor/assets/javascripts/dojo/store/api/Store.js +52 -0
- data/vendor/assets/javascripts/dojo/store/api/Store.js.uncompressed.js +297 -0
- data/vendor/assets/javascripts/dojo/store/util/QueryResults.js +39 -0
- data/vendor/assets/javascripts/dojo/store/util/QueryResults.js.uncompressed.js +64 -0
- data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js +63 -0
- data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js.uncompressed.js +108 -0
- data/vendor/assets/javascripts/dojo/string.js +57 -0
- data/vendor/assets/javascripts/dojo/string.js.uncompressed.js +162 -0
- data/vendor/assets/javascripts/dojo/text.js +99 -0
- data/vendor/assets/javascripts/dojo/text.js.uncompressed.js +212 -0
- data/vendor/assets/javascripts/dojo/topic.js +15 -0
- data/vendor/assets/javascripts/dojo/topic.js.uncompressed.js +33 -0
- data/vendor/assets/javascripts/dojo/touch.js +17 -0
- data/vendor/assets/javascripts/dojo/touch.js.uncompressed.js +89 -0
- data/vendor/assets/javascripts/dojo/uacss.js +25 -0
- data/vendor/assets/javascripts/dojo/uacss.js.uncompressed.js +66 -0
- data/vendor/assets/javascripts/dojo/window.js +119 -0
- data/vendor/assets/javascripts/dojo/window.js.uncompressed.js +169 -0
- metadata +613 -3
@@ -0,0 +1,143 @@
|
|
1
|
+
define("dojo/dnd/move", ["../main", "./Mover", "./Moveable"], function(dojo) {
|
2
|
+
// module:
|
3
|
+
// dojo/dnd/move
|
4
|
+
// summary:
|
5
|
+
// TODOC
|
6
|
+
|
7
|
+
|
8
|
+
/*=====
|
9
|
+
dojo.declare("dojo.dnd.move.__constrainedMoveableArgs", [dojo.dnd.__MoveableArgs], {
|
10
|
+
// constraints: Function
|
11
|
+
// Calculates a constraint box.
|
12
|
+
// It is called in a context of the moveable object.
|
13
|
+
constraints: function(){},
|
14
|
+
|
15
|
+
// within: Boolean
|
16
|
+
// restrict move within boundaries.
|
17
|
+
within: false
|
18
|
+
});
|
19
|
+
=====*/
|
20
|
+
|
21
|
+
dojo.declare("dojo.dnd.move.constrainedMoveable", dojo.dnd.Moveable, {
|
22
|
+
// object attributes (for markup)
|
23
|
+
constraints: function(){},
|
24
|
+
within: false,
|
25
|
+
|
26
|
+
constructor: function(node, params){
|
27
|
+
// summary:
|
28
|
+
// an object that makes a node moveable
|
29
|
+
// node: Node
|
30
|
+
// a node (or node's id) to be moved
|
31
|
+
// params: dojo.dnd.move.__constrainedMoveableArgs?
|
32
|
+
// an optional object with additional parameters;
|
33
|
+
// the rest is passed to the base class
|
34
|
+
if(!params){ params = {}; }
|
35
|
+
this.constraints = params.constraints;
|
36
|
+
this.within = params.within;
|
37
|
+
},
|
38
|
+
onFirstMove: function(/* dojo.dnd.Mover */ mover){
|
39
|
+
// summary:
|
40
|
+
// called during the very first move notification;
|
41
|
+
// can be used to initialize coordinates, can be overwritten.
|
42
|
+
var c = this.constraintBox = this.constraints.call(this, mover);
|
43
|
+
c.r = c.l + c.w;
|
44
|
+
c.b = c.t + c.h;
|
45
|
+
if(this.within){
|
46
|
+
var mb = dojo._getMarginSize(mover.node);
|
47
|
+
c.r -= mb.w;
|
48
|
+
c.b -= mb.h;
|
49
|
+
}
|
50
|
+
},
|
51
|
+
onMove: function(/* dojo.dnd.Mover */ mover, /* Object */ leftTop){
|
52
|
+
// summary:
|
53
|
+
// called during every move notification;
|
54
|
+
// should actually move the node; can be overwritten.
|
55
|
+
var c = this.constraintBox, s = mover.node.style;
|
56
|
+
this.onMoving(mover, leftTop);
|
57
|
+
leftTop.l = leftTop.l < c.l ? c.l : c.r < leftTop.l ? c.r : leftTop.l;
|
58
|
+
leftTop.t = leftTop.t < c.t ? c.t : c.b < leftTop.t ? c.b : leftTop.t;
|
59
|
+
s.left = leftTop.l + "px";
|
60
|
+
s.top = leftTop.t + "px";
|
61
|
+
this.onMoved(mover, leftTop);
|
62
|
+
}
|
63
|
+
});
|
64
|
+
|
65
|
+
/*=====
|
66
|
+
dojo.declare("dojo.dnd.move.__boxConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], {
|
67
|
+
// box: Object
|
68
|
+
// a constraint box
|
69
|
+
box: {}
|
70
|
+
});
|
71
|
+
=====*/
|
72
|
+
|
73
|
+
dojo.declare("dojo.dnd.move.boxConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
|
74
|
+
// box:
|
75
|
+
// object attributes (for markup)
|
76
|
+
box: {},
|
77
|
+
|
78
|
+
constructor: function(node, params){
|
79
|
+
// summary:
|
80
|
+
// an object, which makes a node moveable
|
81
|
+
// node: Node
|
82
|
+
// a node (or node's id) to be moved
|
83
|
+
// params: dojo.dnd.move.__boxConstrainedMoveableArgs?
|
84
|
+
// an optional object with parameters
|
85
|
+
var box = params && params.box;
|
86
|
+
this.constraints = function(){ return box; };
|
87
|
+
}
|
88
|
+
});
|
89
|
+
|
90
|
+
/*=====
|
91
|
+
dojo.declare("dojo.dnd.move.__parentConstrainedMoveableArgs", [dojo.dnd.move.__constrainedMoveableArgs], {
|
92
|
+
// area: String
|
93
|
+
// A parent's area to restrict the move.
|
94
|
+
// Can be "margin", "border", "padding", or "content".
|
95
|
+
area: ""
|
96
|
+
});
|
97
|
+
=====*/
|
98
|
+
|
99
|
+
dojo.declare("dojo.dnd.move.parentConstrainedMoveable", dojo.dnd.move.constrainedMoveable, {
|
100
|
+
// area:
|
101
|
+
// object attributes (for markup)
|
102
|
+
area: "content",
|
103
|
+
|
104
|
+
constructor: function(node, params){
|
105
|
+
// summary:
|
106
|
+
// an object, which makes a node moveable
|
107
|
+
// node: Node
|
108
|
+
// a node (or node's id) to be moved
|
109
|
+
// params: dojo.dnd.move.__parentConstrainedMoveableArgs?
|
110
|
+
// an optional object with parameters
|
111
|
+
var area = params && params.area;
|
112
|
+
this.constraints = function(){
|
113
|
+
var n = this.node.parentNode,
|
114
|
+
s = dojo.getComputedStyle(n),
|
115
|
+
mb = dojo._getMarginBox(n, s);
|
116
|
+
if(area == "margin"){
|
117
|
+
return mb; // Object
|
118
|
+
}
|
119
|
+
var t = dojo._getMarginExtents(n, s);
|
120
|
+
mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
|
121
|
+
if(area == "border"){
|
122
|
+
return mb; // Object
|
123
|
+
}
|
124
|
+
t = dojo._getBorderExtents(n, s);
|
125
|
+
mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
|
126
|
+
if(area == "padding"){
|
127
|
+
return mb; // Object
|
128
|
+
}
|
129
|
+
t = dojo._getPadExtents(n, s);
|
130
|
+
mb.l += t.l, mb.t += t.t, mb.w -= t.w, mb.h -= t.h;
|
131
|
+
return mb; // Object
|
132
|
+
};
|
133
|
+
}
|
134
|
+
});
|
135
|
+
|
136
|
+
// patching functions one level up for compatibility
|
137
|
+
|
138
|
+
dojo.dnd.constrainedMover = dojo.dnd.move.constrainedMover;
|
139
|
+
dojo.dnd.boxConstrainedMover = dojo.dnd.move.boxConstrainedMover;
|
140
|
+
dojo.dnd.parentConstrainedMover = dojo.dnd.move.parentConstrainedMover;
|
141
|
+
|
142
|
+
return dojo.dnd.move;
|
143
|
+
});
|
@@ -0,0 +1,1872 @@
|
|
1
|
+
(function(
|
2
|
+
userConfig,
|
3
|
+
defaultConfig
|
4
|
+
){
|
5
|
+
// summary:
|
6
|
+
// This is the "source loader" and is the entry point for Dojo during development. You may also load Dojo with
|
7
|
+
// any AMD-compliant loader via the package main module dojo/main.
|
8
|
+
// description:
|
9
|
+
// This is the "source loader" for Dojo. It provides an AMD-compliant loader that can be configured
|
10
|
+
// to operate in either synchronous or asynchronous modes. After the loader is defined, dojo is loaded
|
11
|
+
// IAW the package main module dojo/main. In the event you wish to use a foreign loader, you may load dojo as a package
|
12
|
+
// via the package main module dojo/main and this loader is not required; see dojo/package.json for details.
|
13
|
+
//
|
14
|
+
// In order to keep compatibility with the v1.x line, this loader includes additional machinery that enables
|
15
|
+
// the dojo.provide, dojo.require et al API. This machinery is loaded by default, but may be dynamically removed
|
16
|
+
// via the has.js API and statically removed via the build system.
|
17
|
+
//
|
18
|
+
// This loader includes sniffing machinery to determine the environment; the following environments are supported:
|
19
|
+
//
|
20
|
+
// * browser
|
21
|
+
// * node.js
|
22
|
+
// * rhino
|
23
|
+
//
|
24
|
+
// This is the so-called "source loader". As such, it includes many optional features that may be discadred by
|
25
|
+
// building a customized verion with the build system.
|
26
|
+
|
27
|
+
// Design and Implementation Notes
|
28
|
+
//
|
29
|
+
// This is a dojo-specific adaption of bdLoad, donated to the dojo foundation by Altoviso LLC.
|
30
|
+
//
|
31
|
+
// This function defines an AMD-compliant (http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition)
|
32
|
+
// loader that can be configured to operate in either synchronous or asynchronous modes.
|
33
|
+
//
|
34
|
+
// Since this machinery implements a loader, it does not have the luxury of using a load system and/or
|
35
|
+
// leveraging a utility library. This results in an unpleasantly long file; here is a road map of the contents:
|
36
|
+
//
|
37
|
+
// 1. Small library for use implementing the loader.
|
38
|
+
// 2. Define the has.js API; this is used throughout the loader to bracket features.
|
39
|
+
// 3. Define the node.js and rhino sniffs and sniff.
|
40
|
+
// 4. Define the loader's data.
|
41
|
+
// 5. Define the configuration machinery.
|
42
|
+
// 6. Define the script element sniffing machinery and sniff for configuration data.
|
43
|
+
// 7. Configure the loader IAW the provided user, default, and sniffing data.
|
44
|
+
// 8. Define the global require function.
|
45
|
+
// 9. Define the module resolution machinery.
|
46
|
+
// 10. Define the module and plugin module definition machinery
|
47
|
+
// 11. Define the script injection machinery.
|
48
|
+
// 12. Define the window load detection.
|
49
|
+
// 13. Define the logging API.
|
50
|
+
// 14. Define the tracing API.
|
51
|
+
// 16. Define the AMD define function.
|
52
|
+
// 17. Define the dojo v1.x provide/require machinery--so called "legacy" modes.
|
53
|
+
// 18. Publish global variables.
|
54
|
+
//
|
55
|
+
// Language and Acronyms and Idioms
|
56
|
+
//
|
57
|
+
// moduleId: a CJS module identifier, (used for public APIs)
|
58
|
+
// mid: moduleId (used internally)
|
59
|
+
// packageId: a package identifier (used for public APIs)
|
60
|
+
// pid: packageId (used internally); the implied system or default package has pid===""
|
61
|
+
// pack: package is used internally to reference a package object (since javascript has reserved words including "package")
|
62
|
+
// prid: plugin resource identifier
|
63
|
+
// The integer constant 1 is used in place of true and 0 in place of false.
|
64
|
+
|
65
|
+
// define a minimal library to help build the loader
|
66
|
+
var noop = function(){
|
67
|
+
},
|
68
|
+
|
69
|
+
isEmpty = function(it){
|
70
|
+
for(var p in it){
|
71
|
+
return 0;
|
72
|
+
}
|
73
|
+
return 1;
|
74
|
+
},
|
75
|
+
|
76
|
+
toString = {}.toString,
|
77
|
+
|
78
|
+
isFunction = function(it){
|
79
|
+
return toString.call(it) == "[object Function]";
|
80
|
+
},
|
81
|
+
|
82
|
+
isString = function(it){
|
83
|
+
return toString.call(it) == "[object String]";
|
84
|
+
},
|
85
|
+
|
86
|
+
isArray = function(it){
|
87
|
+
return toString.call(it) == "[object Array]";
|
88
|
+
},
|
89
|
+
|
90
|
+
forEach = function(vector, callback){
|
91
|
+
if(vector){
|
92
|
+
for(var i = 0; i < vector.length;){
|
93
|
+
callback(vector[i++]);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
|
98
|
+
mix = function(dest, src){
|
99
|
+
for(var p in src){
|
100
|
+
dest[p] = src[p];
|
101
|
+
}
|
102
|
+
return dest;
|
103
|
+
},
|
104
|
+
|
105
|
+
makeError = function(error, info){
|
106
|
+
return mix(new Error(error), {src:"dojoLoader", info:info});
|
107
|
+
},
|
108
|
+
|
109
|
+
uidSeed = 1,
|
110
|
+
|
111
|
+
uid = function(){
|
112
|
+
// Returns a unique indentifier (within the lifetime of the document) of the form /_d+/.
|
113
|
+
return "_" + uidSeed++;
|
114
|
+
},
|
115
|
+
|
116
|
+
// FIXME: how to doc window.require() api
|
117
|
+
|
118
|
+
// this will be the global require function; define it immediately so we can start hanging things off of it
|
119
|
+
req = function(
|
120
|
+
config, //(object, optional) hash of configuration properties
|
121
|
+
dependencies, //(array of commonjs.moduleId, optional) list of modules to be loaded before applying callback
|
122
|
+
callback //(function, optional) lamda expression to apply to module values implied by dependencies
|
123
|
+
){
|
124
|
+
return contextRequire(config, dependencies, callback, 0, req);
|
125
|
+
},
|
126
|
+
|
127
|
+
// the loader uses the has.js API to control feature inclusion/exclusion; define then use throughout
|
128
|
+
global = this,
|
129
|
+
|
130
|
+
doc = global.document,
|
131
|
+
|
132
|
+
element = doc && doc.createElement("DiV"),
|
133
|
+
|
134
|
+
has = req.has = function(name){
|
135
|
+
return isFunction(hasCache[name]) ? (hasCache[name] = hasCache[name](global, doc, element)) : hasCache[name];
|
136
|
+
},
|
137
|
+
|
138
|
+
hasCache = has.cache = defaultConfig.hasCache;
|
139
|
+
|
140
|
+
has.add = function(name, test, now, force){
|
141
|
+
(hasCache[name]===undefined || force) && (hasCache[name] = test);
|
142
|
+
return now && has(name);
|
143
|
+
};
|
144
|
+
|
145
|
+
has.add("host-node", userConfig.has && "host-node" in userConfig.has ?
|
146
|
+
userConfig.has["host-node"] :
|
147
|
+
(typeof process == "object" && process.versions && process.versions.node && process.versions.v8));
|
148
|
+
if(has("host-node")){
|
149
|
+
// fixup the default config for node.js environment
|
150
|
+
require("./_base/configNode.js").config(defaultConfig);
|
151
|
+
// remember node's require (with respect to baseUrl==dojo's root)
|
152
|
+
defaultConfig.loaderPatch.nodeRequire = require;
|
153
|
+
}
|
154
|
+
|
155
|
+
has.add("host-rhino", userConfig.has && "host-rhino" in userConfig.has ?
|
156
|
+
userConfig.has["host-rhino"] :
|
157
|
+
(typeof load == "function" && (typeof Packages == "function" || typeof Packages == "object")));
|
158
|
+
if(has("host-rhino")){
|
159
|
+
// owing to rhino's lame feature that hides the source of the script, give the user a way to specify the baseUrl...
|
160
|
+
for(var baseUrl = userConfig.baseUrl || ".", arg, rhinoArgs = this.arguments, i = 0; i < rhinoArgs.length;){
|
161
|
+
arg = (rhinoArgs[i++] + "").split("=");
|
162
|
+
if(arg[0] == "baseUrl"){
|
163
|
+
baseUrl = arg[1];
|
164
|
+
break;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
load(baseUrl + "/_base/configRhino.js");
|
168
|
+
rhinoDojoConfig(defaultConfig, baseUrl, rhinoArgs);
|
169
|
+
}
|
170
|
+
|
171
|
+
// userConfig has tests override defaultConfig has tests; do this after the environment detection because
|
172
|
+
// the environment detection usually sets some has feature values in the hasCache.
|
173
|
+
for(var p in userConfig.has){
|
174
|
+
has.add(p, userConfig.has[p], 0, 1);
|
175
|
+
}
|
176
|
+
|
177
|
+
//
|
178
|
+
// define the loader data
|
179
|
+
//
|
180
|
+
|
181
|
+
// the loader will use these like symbols if the loader has the traceApi; otherwise
|
182
|
+
// define magic numbers so that modules can be provided as part of defaultConfig
|
183
|
+
var requested = 1,
|
184
|
+
arrived = 2,
|
185
|
+
nonmodule = 3,
|
186
|
+
executing = 4,
|
187
|
+
executed = 5;
|
188
|
+
|
189
|
+
if(has("dojo-trace-api")){
|
190
|
+
// these make debugging nice; but using strings for symbols is a gross rookie error; don't do it for production code
|
191
|
+
requested = "requested";
|
192
|
+
arrived = "arrived";
|
193
|
+
nonmodule = "not-a-module";
|
194
|
+
executing = "executing";
|
195
|
+
executed = "executed";
|
196
|
+
}
|
197
|
+
|
198
|
+
var legacyMode = 0,
|
199
|
+
sync = "sync",
|
200
|
+
xd = "xd",
|
201
|
+
syncExecStack = [],
|
202
|
+
dojoRequirePlugin = 0,
|
203
|
+
checkDojoRequirePlugin = noop,
|
204
|
+
transformToAmd = noop,
|
205
|
+
getXhr;
|
206
|
+
if(has("dojo-sync-loader")){
|
207
|
+
req.isXdUrl = noop;
|
208
|
+
|
209
|
+
req.initSyncLoader = function(dojoRequirePlugin_, checkDojoRequirePlugin_, transformToAmd_){
|
210
|
+
if(!dojoRequirePlugin){
|
211
|
+
dojoRequirePlugin = dojoRequirePlugin_;
|
212
|
+
checkDojoRequirePlugin = checkDojoRequirePlugin_;
|
213
|
+
transformToAmd = transformToAmd_;
|
214
|
+
}
|
215
|
+
return {
|
216
|
+
sync:sync,
|
217
|
+
xd:xd,
|
218
|
+
arrived:arrived,
|
219
|
+
nonmodule:nonmodule,
|
220
|
+
executing:executing,
|
221
|
+
executed:executed,
|
222
|
+
syncExecStack:syncExecStack,
|
223
|
+
modules:modules,
|
224
|
+
execQ:execQ,
|
225
|
+
getModule:getModule,
|
226
|
+
injectModule:injectModule,
|
227
|
+
setArrived:setArrived,
|
228
|
+
signal:signal,
|
229
|
+
finishExec:finishExec,
|
230
|
+
execModule:execModule,
|
231
|
+
dojoRequirePlugin:dojoRequirePlugin,
|
232
|
+
getLegacyMode:function(){return legacyMode;},
|
233
|
+
holdIdle:function(){checkCompleteGuard++;},
|
234
|
+
releaseIdle:function(){checkIdle();}
|
235
|
+
};
|
236
|
+
};
|
237
|
+
|
238
|
+
if(has("dom")){
|
239
|
+
// in legacy sync mode, the loader needs a minimal XHR library to load dojo/_base/loader and dojo/_base/xhr
|
240
|
+
|
241
|
+
var locationProtocol = location.protocol,
|
242
|
+
locationHost = location.host,
|
243
|
+
fileProtocol = !locationHost;
|
244
|
+
req.isXdUrl = function(url){
|
245
|
+
if(fileProtocol || /^\./.test(url)){
|
246
|
+
// begins with a dot is always relative to page URL; therefore not xdomain
|
247
|
+
return false;
|
248
|
+
}
|
249
|
+
if(/^\/\//.test(url)){
|
250
|
+
// for v1.6- backcompat, url starting with // indicates xdomain
|
251
|
+
return true;
|
252
|
+
}
|
253
|
+
// get protocol and host
|
254
|
+
var match = url.match(/^([^\/\:]+\:)\/\/([^\/]+)/);
|
255
|
+
return match && (match[1] != locationProtocol || match[2] != locationHost);
|
256
|
+
};
|
257
|
+
|
258
|
+
// note: to get the file:// protocol to work in FF, you must set security.fileuri.strict_origin_policy to false in about:config
|
259
|
+
has.add("dojo-xhr-factory", 1);
|
260
|
+
has.add("dojo-force-activex-xhr", has("host-browser") && !doc.addEventListener && window.location.protocol == "file:");
|
261
|
+
has.add("native-xhr", typeof XMLHttpRequest != "undefined");
|
262
|
+
if(has("native-xhr") && !has("dojo-force-activex-xhr")){
|
263
|
+
getXhr = function(){
|
264
|
+
return new XMLHttpRequest();
|
265
|
+
};
|
266
|
+
}else{
|
267
|
+
// if in the browser an old IE; find an xhr
|
268
|
+
for(var XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'], progid, i = 0; i < 3;){
|
269
|
+
try{
|
270
|
+
progid = XMLHTTP_PROGIDS[i++];
|
271
|
+
if(new ActiveXObject(progid)){
|
272
|
+
// this progid works; therefore, use it from now on
|
273
|
+
break;
|
274
|
+
}
|
275
|
+
}catch(e){
|
276
|
+
// squelch; we're just trying to find a good ActiveX progid
|
277
|
+
// if they all fail, then progid ends up as the last attempt and that will signal the error
|
278
|
+
// the first time the client actually tries to exec an xhr
|
279
|
+
}
|
280
|
+
}
|
281
|
+
getXhr = function(){
|
282
|
+
return new ActiveXObject(progid);
|
283
|
+
};
|
284
|
+
}
|
285
|
+
req.getXhr = getXhr;
|
286
|
+
|
287
|
+
has.add("dojo-gettext-api", 1);
|
288
|
+
req.getText = function(url, async, onLoad){
|
289
|
+
var xhr = getXhr();
|
290
|
+
xhr.open('GET', fixupUrl(url), false);
|
291
|
+
xhr.send(null);
|
292
|
+
if(xhr.status == 200 || (!location.host && !xhr.status)){
|
293
|
+
if(onLoad){
|
294
|
+
onLoad(xhr.responseText, async);
|
295
|
+
}
|
296
|
+
}else{
|
297
|
+
throw makeError("xhrFailed", xhr.status);
|
298
|
+
}
|
299
|
+
return xhr.responseText;
|
300
|
+
};
|
301
|
+
}
|
302
|
+
}else{
|
303
|
+
req.async = 1;
|
304
|
+
}
|
305
|
+
|
306
|
+
//
|
307
|
+
// loader eval
|
308
|
+
//
|
309
|
+
var eval_ =
|
310
|
+
// use the function constructor so our eval is scoped close to (but not in) in the global space with minimal pollution
|
311
|
+
new Function('return eval(arguments[0]);');
|
312
|
+
|
313
|
+
req.eval =
|
314
|
+
function(text, hint){
|
315
|
+
return eval_(text + "\r\n////@ sourceURL=" + hint);
|
316
|
+
};
|
317
|
+
|
318
|
+
//
|
319
|
+
// loader micro events API
|
320
|
+
//
|
321
|
+
var listenerQueues = {},
|
322
|
+
error = "error",
|
323
|
+
signal = req.signal = function(type, args){
|
324
|
+
var queue = listenerQueues[type];
|
325
|
+
// notice we run a copy of the queue; this allows listeners to add/remove
|
326
|
+
// other listeners without affecting this particular signal
|
327
|
+
forEach(queue && queue.slice(0), function(listener){
|
328
|
+
listener.apply(null, isArray(args) ? args : [args]);
|
329
|
+
});
|
330
|
+
},
|
331
|
+
on = req.on = function(type, listener){
|
332
|
+
// notice a queue is not created until a client actually connects
|
333
|
+
var queue = listenerQueues[type] || (listenerQueues[type] = []);
|
334
|
+
queue.push(listener);
|
335
|
+
return {
|
336
|
+
remove:function(){
|
337
|
+
for(var i = 0; i<queue.length; i++){
|
338
|
+
if(queue[i]===listener){
|
339
|
+
queue.splice(i, 1);
|
340
|
+
return;
|
341
|
+
}
|
342
|
+
}
|
343
|
+
}
|
344
|
+
};
|
345
|
+
};
|
346
|
+
|
347
|
+
// configuration machinery; with an optimized/built defaultConfig, all configuration machinery can be discarded
|
348
|
+
// lexical variables hold key loader data structures to help with minification; these may be completely,
|
349
|
+
// one-time initialized by defaultConfig for optimized/built versions
|
350
|
+
var
|
351
|
+
aliases
|
352
|
+
// a vector of pairs of [regexs or string, replacement] => (alias, actual)
|
353
|
+
= [],
|
354
|
+
|
355
|
+
paths
|
356
|
+
// CommonJS paths
|
357
|
+
= {},
|
358
|
+
|
359
|
+
pathsMapProg
|
360
|
+
// list of (from-path, to-path, regex, length) derived from paths;
|
361
|
+
// a "program" to apply paths; see computeMapProg
|
362
|
+
= [],
|
363
|
+
|
364
|
+
packs
|
365
|
+
// a map from packageId to package configuration object; see fixupPackageInfo
|
366
|
+
= {},
|
367
|
+
|
368
|
+
packageMap
|
369
|
+
// map from package name to local-installed package name
|
370
|
+
= {},
|
371
|
+
|
372
|
+
packageMapProg
|
373
|
+
// list of (from-package, to-package, regex, length) derived from packageMap;
|
374
|
+
// a "program" to apply paths; see computeMapProg
|
375
|
+
= [],
|
376
|
+
|
377
|
+
modules
|
378
|
+
// A hash:(mid) --> (module-object) the module namespace
|
379
|
+
//
|
380
|
+
// pid: the package identifier to which the module belongs (e.g., "dojo"); "" indicates the system or default package
|
381
|
+
// mid: the fully-resolved (i.e., mappings have been applied) module identifier without the package identifier (e.g., "dojo/io/script")
|
382
|
+
// url: the URL from which the module was retrieved
|
383
|
+
// pack: the package object of the package to which the module belongs
|
384
|
+
// executed: 0 => not executed; executing => in the process of tranversing deps and running factory; executed => factory has been executed
|
385
|
+
// deps: the dependency vector for this module (vector of modules objects)
|
386
|
+
// def: the factory for this module
|
387
|
+
// result: the result of the running the factory for this module
|
388
|
+
// injected: (requested | arrived | nonmodule) the status of the module; nonmodule means the resource did not call define
|
389
|
+
// load: plugin load function; applicable only for plugins
|
390
|
+
//
|
391
|
+
// Modules go through several phases in creation:
|
392
|
+
//
|
393
|
+
// 1. Requested: some other module's definition or a require application contained the requested module in
|
394
|
+
// its dependency vector or executing code explicitly demands a module via req.require.
|
395
|
+
//
|
396
|
+
// 2. Injected: a script element has been appended to the insert-point element demanding the resource implied by the URL
|
397
|
+
//
|
398
|
+
// 3. Loaded: the resource injected in [2] has been evalated.
|
399
|
+
//
|
400
|
+
// 4. Defined: the resource contained a define statement that advised the loader about the module. Notice that some
|
401
|
+
// resources may just contain a bundle of code and never formally define a module via define
|
402
|
+
//
|
403
|
+
// 5. Evaluated: the module was defined via define and the loader has evaluated the factory and computed a result.
|
404
|
+
= {},
|
405
|
+
|
406
|
+
cacheBust
|
407
|
+
// query string to append to module URLs to bust browser cache
|
408
|
+
= "",
|
409
|
+
|
410
|
+
cache
|
411
|
+
// hash:(mid)-->(function)
|
412
|
+
//
|
413
|
+
// Gives the contents of a cached resource; function should cause the same actions as if the given mid was downloaded
|
414
|
+
// and evaluated by the host environment
|
415
|
+
= {},
|
416
|
+
|
417
|
+
pendingCacheInsert
|
418
|
+
// hash:(mid)-->(function)
|
419
|
+
//
|
420
|
+
// Gives a set of cache modules pending entry into cache. When cached modules are published to the loader, they are
|
421
|
+
// entered into pendingCacheInsert; modules are then pressed into cache upon (1) AMD define or (2) upon receiving another
|
422
|
+
// independent set of cached modules. (1) is the usual case, and this case allows normalizing mids given in the pending
|
423
|
+
// cache for the local configuration, possibly relocating modules.
|
424
|
+
= {},
|
425
|
+
|
426
|
+
dojoSniffConfig
|
427
|
+
// map of configuration variables
|
428
|
+
// give the data-dojo-config as sniffed from the document (if any)
|
429
|
+
= {};
|
430
|
+
|
431
|
+
if(has("dojo-config-api")){
|
432
|
+
var consumePendingCacheInsert = function(referenceModule){
|
433
|
+
var p, item, match, now;
|
434
|
+
for(p in pendingCacheInsert){
|
435
|
+
item = pendingCacheInsert[p];
|
436
|
+
match = p.match(/^url\:(.+)/);
|
437
|
+
if(match){
|
438
|
+
cache[toUrl(match[1], referenceModule)] = item;
|
439
|
+
}else if(p=="*now"){
|
440
|
+
now = item;
|
441
|
+
}else if(p!="*noref"){
|
442
|
+
cache[getModuleInfo(p, referenceModule).mid] = item;
|
443
|
+
}
|
444
|
+
}
|
445
|
+
if(now){
|
446
|
+
now(createRequire(referenceModule));
|
447
|
+
}
|
448
|
+
pendingCacheInsert = {};
|
449
|
+
},
|
450
|
+
|
451
|
+
computeMapProg = function(map, dest, packName){
|
452
|
+
// This routine takes a map target-prefix(string)-->replacement(string) into a vector
|
453
|
+
// of quads (target-prefix, replacement, regex-for-target-prefix, length-of-target-prefix)
|
454
|
+
//
|
455
|
+
// The loader contains processes that map one string prefix to another. These
|
456
|
+
// are encountered when applying the requirejs paths configuration and when mapping
|
457
|
+
// package names. We can make the mapping and any replacement easier and faster by
|
458
|
+
// replacing the map with a vector of quads and then using this structure in the simple machine runMapProg.
|
459
|
+
dest.splice(0, dest.length);
|
460
|
+
var p, i, item, reverseName = 0;
|
461
|
+
for(p in map){
|
462
|
+
dest.push([p, map[p]]);
|
463
|
+
if(map[p]==packName){
|
464
|
+
reverseName = p;
|
465
|
+
}
|
466
|
+
}
|
467
|
+
dest.sort(function(lhs, rhs){
|
468
|
+
return rhs[0].length - lhs[0].length;
|
469
|
+
});
|
470
|
+
for(i = 0; i < dest.length;){
|
471
|
+
item = dest[i++];
|
472
|
+
item[2] = new RegExp("^" + item[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(c){ return "\\" + c; }) + "(\/|$)");
|
473
|
+
item[3] = item[0].length + 1;
|
474
|
+
}
|
475
|
+
return reverseName;
|
476
|
+
},
|
477
|
+
|
478
|
+
fixupPackageInfo = function(packageInfo, baseUrl){
|
479
|
+
// calculate the precise (name, baseUrl, main, mappings) for a package
|
480
|
+
var name = packageInfo.name;
|
481
|
+
if(!name){
|
482
|
+
// packageInfo must be a string that gives the name
|
483
|
+
name = packageInfo;
|
484
|
+
packageInfo = {name:name};
|
485
|
+
}
|
486
|
+
packageInfo = mix({main:"main", mapProg:[]}, packageInfo);
|
487
|
+
packageInfo.location = (baseUrl || "") + (packageInfo.location ? packageInfo.location : name);
|
488
|
+
packageInfo.reverseName = computeMapProg(packageInfo.packageMap, packageInfo.mapProg, name);
|
489
|
+
|
490
|
+
if(!packageInfo.main.indexOf("./")){
|
491
|
+
packageInfo.main = packageInfo.main.substring(2);
|
492
|
+
}
|
493
|
+
|
494
|
+
// allow paths to be specified in the package info
|
495
|
+
// TODO: this is not supported; remove
|
496
|
+
mix(paths, packageInfo.paths);
|
497
|
+
|
498
|
+
// now that we've got a fully-resolved package object, push it into the configuration
|
499
|
+
packs[name] = packageInfo;
|
500
|
+
packageMap[name] = name;
|
501
|
+
},
|
502
|
+
|
503
|
+
config = function(config, booting){
|
504
|
+
for(var p in config){
|
505
|
+
if(p=="waitSeconds"){
|
506
|
+
req.waitms = (config[p] || 0) * 1000;
|
507
|
+
}
|
508
|
+
if(p=="cacheBust"){
|
509
|
+
cacheBust = config[p] ? (isString(config[p]) ? config[p] : (new Date()).getTime() + "") : "";
|
510
|
+
}
|
511
|
+
if(p=="baseUrl" || p=="combo"){
|
512
|
+
req[p] = config[p];
|
513
|
+
}
|
514
|
+
if(has("dojo-sync-loader") && p=="async"){
|
515
|
+
// falsy or "sync" => legacy sync loader
|
516
|
+
// "xd" => sync but loading xdomain tree and therefore loading asynchronously (not configurable, set automatically by the loader)
|
517
|
+
// "legacyAsync" => permanently in "xd" by choice
|
518
|
+
// "debugAtAllCosts" => trying to load everything via script injection (not implemented)
|
519
|
+
// otherwise, must be truthy => AMD
|
520
|
+
// legacyMode: sync | legacyAsync | xd | false
|
521
|
+
var mode = config[p];
|
522
|
+
req.legacyMode = legacyMode = (isString(mode) && /sync|legacyAsync/.test(mode) ? mode : (!mode ? "sync" : false));
|
523
|
+
req.async = !legacyMode;
|
524
|
+
}
|
525
|
+
if(config[p]!==hasCache){
|
526
|
+
// accumulate raw config info for client apps which can use this to pass their own config
|
527
|
+
req.rawConfig[p] = config[p];
|
528
|
+
p!="has" && has.add("config-"+p, config[p], 0, booting);
|
529
|
+
}
|
530
|
+
}
|
531
|
+
|
532
|
+
// make sure baseUrl exists
|
533
|
+
if(!req.baseUrl){
|
534
|
+
req.baseUrl = "./";
|
535
|
+
}
|
536
|
+
// make sure baseUrl ends with a slash
|
537
|
+
if(!/\/$/.test(req.baseUrl)){
|
538
|
+
req.baseUrl += "/";
|
539
|
+
}
|
540
|
+
|
541
|
+
// now do the special work for has, packages, packagePaths, paths, aliases, and cache
|
542
|
+
|
543
|
+
for(p in config.has){
|
544
|
+
has.add(p, config.has[p], 0, booting);
|
545
|
+
}
|
546
|
+
|
547
|
+
// for each package found in any packages config item, augment the packs map owned by the loader
|
548
|
+
forEach(config.packages, fixupPackageInfo);
|
549
|
+
|
550
|
+
// for each packagePath found in any packagePaths config item, augment the packs map owned by the loader
|
551
|
+
for(baseUrl in config.packagePaths){
|
552
|
+
forEach(config.packagePaths[baseUrl], function(packageInfo){
|
553
|
+
fixupPackageInfo(packageInfo, baseUrl + "/");
|
554
|
+
});
|
555
|
+
}
|
556
|
+
|
557
|
+
// push in any paths and recompute the internal pathmap
|
558
|
+
// warning: this cann't be done until the package config is processed since packages may include path info
|
559
|
+
computeMapProg(mix(paths, config.paths), pathsMapProg);
|
560
|
+
|
561
|
+
// aliases
|
562
|
+
forEach(config.aliases, function(pair){
|
563
|
+
if(isString(pair[0])){
|
564
|
+
pair[0] = new RegExp("^" + pair[0].replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(c){return "\\" + c;}) + "$");
|
565
|
+
}
|
566
|
+
aliases.push(pair);
|
567
|
+
});
|
568
|
+
|
569
|
+
// mix any packageMap config item and recompute the internal packageMapProg
|
570
|
+
computeMapProg(mix(packageMap, config.packageMap), packageMapProg);
|
571
|
+
|
572
|
+
// push in any new cache values
|
573
|
+
if(config.cache){
|
574
|
+
consumePendingCacheInsert();
|
575
|
+
pendingCacheInsert = config.cache;
|
576
|
+
if(config.cache["*noref"]){
|
577
|
+
consumePendingCacheInsert();
|
578
|
+
}
|
579
|
+
}
|
580
|
+
|
581
|
+
signal("config", [config, req.rawConfig]);
|
582
|
+
};
|
583
|
+
|
584
|
+
//
|
585
|
+
// execute the various sniffs
|
586
|
+
//
|
587
|
+
|
588
|
+
if(has("dojo-cdn") || has("dojo-sniff")){
|
589
|
+
for(var dojoDir, src, match, scripts = doc.getElementsByTagName("script"), i = 0; i < scripts.length && !match; i++){
|
590
|
+
if((src = scripts[i].getAttribute("src")) && (match = src.match(/(.*)\/?dojo\.js(\W|$)/i))){
|
591
|
+
// if baseUrl wasn't explicitly set, set it here to the dojo directory; this is the 1.6- behavior
|
592
|
+
userConfig.baseUrl = dojoDir = userConfig.baseUrl || defaultConfig.baseUrl || match[1];
|
593
|
+
|
594
|
+
// see if there's a dojo configuration stuffed into the node
|
595
|
+
src = (scripts[i].getAttribute("data-dojo-config") || scripts[i].getAttribute("djConfig"));
|
596
|
+
if(src){
|
597
|
+
dojoSniffConfig = req.eval("({ " + src + " })", "data-dojo-config");
|
598
|
+
}
|
599
|
+
if(has("dojo-requirejs-api")){
|
600
|
+
var dataMain = scripts[i].getAttribute("data-main");
|
601
|
+
if(dataMain){
|
602
|
+
dojoSniffConfig.deps = dojoSniffConfig.deps || [dataMain];
|
603
|
+
}
|
604
|
+
}
|
605
|
+
}
|
606
|
+
}
|
607
|
+
}
|
608
|
+
|
609
|
+
if(has("dojo-test-sniff")){
|
610
|
+
// pass down doh.testConfig from parent as if it were a data-dojo-config
|
611
|
+
try{
|
612
|
+
if(window.parent != window && window.parent.require){
|
613
|
+
var doh = window.parent.require("doh");
|
614
|
+
doh && mix(dojoSniffConfig, doh.testConfig);
|
615
|
+
}
|
616
|
+
}catch(e){}
|
617
|
+
}
|
618
|
+
|
619
|
+
// configure the loader; let the user override defaults
|
620
|
+
req.rawConfig = {};
|
621
|
+
config(defaultConfig, 1);
|
622
|
+
config(userConfig, 1);
|
623
|
+
config(dojoSniffConfig, 1);
|
624
|
+
|
625
|
+
if(has("dojo-cdn")){
|
626
|
+
packs.dojo.location = dojoDir;
|
627
|
+
packs.dijit.location = dojoDir + "../dijit/";
|
628
|
+
packs.dojox.location = dojoDir + "../dojox/";
|
629
|
+
}
|
630
|
+
|
631
|
+
}else{
|
632
|
+
// no config API, assume defaultConfig has everything the loader needs...for the entire lifetime of the application
|
633
|
+
paths = defaultConfig.paths;
|
634
|
+
pathsMapProg = defaultConfig.pathsMapProg;
|
635
|
+
packs = defaultConfig.packs;
|
636
|
+
aliases = defaultConfig.aliases;
|
637
|
+
packageMap = defaultConfig.packageMap;
|
638
|
+
packageMapProg = defaultConfig.packageMapProg;
|
639
|
+
modules = defaultConfig.modules;
|
640
|
+
cache = defaultConfig.cache;
|
641
|
+
cacheBust = defaultConfig.cacheBust;
|
642
|
+
|
643
|
+
// remember the default config for other processes (e.g., dojo/config)
|
644
|
+
req.rawConfig = defaultConfig;
|
645
|
+
}
|
646
|
+
|
647
|
+
|
648
|
+
if(has("dojo-combo-api")){
|
649
|
+
req.combo = req.combo || {add:noop};
|
650
|
+
var comboPending = 0,
|
651
|
+
combosPending = [],
|
652
|
+
comboPendingTimer = null;
|
653
|
+
}
|
654
|
+
|
655
|
+
|
656
|
+
// build the loader machinery iaw configuration, including has feature tests
|
657
|
+
var injectDependencies = function(module){
|
658
|
+
// checkComplete!=0 holds the idle signal; we're not idle if we're injecting dependencies
|
659
|
+
checkCompleteGuard++;
|
660
|
+
forEach(module.deps, injectModule);
|
661
|
+
if(has("dojo-combo-api") && comboPending && !comboPendingTimer){
|
662
|
+
comboPendingTimer = setTimeout(function() {
|
663
|
+
comboPending = 0;
|
664
|
+
comboPendingTimer = null;
|
665
|
+
req.combo.done(function(mids, url) {
|
666
|
+
var onLoadCallback= function(){
|
667
|
+
// defQ is a vector of module definitions 1-to-1, onto mids
|
668
|
+
runDefQ(0, mids);
|
669
|
+
checkComplete();
|
670
|
+
};
|
671
|
+
combosPending.push(mids);
|
672
|
+
injectingModule = mids;
|
673
|
+
req.injectUrl(url, onLoadCallback, mids);
|
674
|
+
injectingModule = 0;
|
675
|
+
}, req);
|
676
|
+
}, 0);
|
677
|
+
}
|
678
|
+
checkIdle();
|
679
|
+
},
|
680
|
+
|
681
|
+
contextRequire = function(a1, a2, a3, referenceModule, contextRequire){
|
682
|
+
var module, syntheticMid;
|
683
|
+
if(isString(a1)){
|
684
|
+
// signature is (moduleId)
|
685
|
+
module = getModule(a1, referenceModule, true);
|
686
|
+
if(module && module.executed){
|
687
|
+
return module.result;
|
688
|
+
}
|
689
|
+
throw makeError("undefinedModule", a1);
|
690
|
+
}
|
691
|
+
if(!isArray(a1)){
|
692
|
+
// a1 is a configuration
|
693
|
+
config(a1);
|
694
|
+
|
695
|
+
// juggle args; (a2, a3) may be (dependencies, callback)
|
696
|
+
a1 = a2;
|
697
|
+
a2 = a3;
|
698
|
+
}
|
699
|
+
if(isArray(a1)){
|
700
|
+
// signature is (requestList [,callback])
|
701
|
+
if(!a1.length){
|
702
|
+
a2 && a2();
|
703
|
+
}else{
|
704
|
+
syntheticMid = "require*" + uid();
|
705
|
+
|
706
|
+
// resolve the request list with respect to the reference module
|
707
|
+
for(var mid, deps = [], i = 0; i < a1.length;){
|
708
|
+
mid = a1[i++];
|
709
|
+
if(mid in {exports:1, module:1}){
|
710
|
+
throw makeError("illegalModuleId", mid);
|
711
|
+
}
|
712
|
+
deps.push(getModule(mid, referenceModule));
|
713
|
+
}
|
714
|
+
|
715
|
+
// construct a synthetic module to control execution of the requestList, and, optionally, callback
|
716
|
+
module = mix(makeModuleInfo("", syntheticMid, 0, ""), {
|
717
|
+
injected: arrived,
|
718
|
+
deps: deps,
|
719
|
+
def: a2 || noop,
|
720
|
+
require: referenceModule ? referenceModule.require : req
|
721
|
+
});
|
722
|
+
modules[module.mid] = module;
|
723
|
+
|
724
|
+
// checkComplete!=0 holds the idle signal; we're not idle if we're injecting dependencies
|
725
|
+
injectDependencies(module);
|
726
|
+
|
727
|
+
// try to immediately execute
|
728
|
+
// if already traversing a factory tree, then strict causes circular dependency to abort the execution; maybe
|
729
|
+
// it's possible to execute this require later after the current traversal completes and avoid the circular dependency.
|
730
|
+
// ...but *always* insist on immediate in synch mode
|
731
|
+
var strict = checkCompleteGuard && req.async;
|
732
|
+
checkCompleteGuard++;
|
733
|
+
execModule(module, strict);
|
734
|
+
checkIdle();
|
735
|
+
if(!module.executed){
|
736
|
+
// some deps weren't on board or circular dependency detected and strict; therefore, push into the execQ
|
737
|
+
execQ.push(module);
|
738
|
+
}
|
739
|
+
checkComplete();
|
740
|
+
}
|
741
|
+
}
|
742
|
+
return contextRequire;
|
743
|
+
},
|
744
|
+
|
745
|
+
createRequire = function(module){
|
746
|
+
if(!module){
|
747
|
+
return req;
|
748
|
+
}
|
749
|
+
var result = module.require;
|
750
|
+
if(!result){
|
751
|
+
result = function(a1, a2, a3){
|
752
|
+
return contextRequire(a1, a2, a3, module, result);
|
753
|
+
};
|
754
|
+
module.require = mix(result, req);
|
755
|
+
result.module = module;
|
756
|
+
result.toUrl = function(name){
|
757
|
+
return toUrl(name, module);
|
758
|
+
};
|
759
|
+
result.toAbsMid = function(mid){
|
760
|
+
return toAbsMid(mid, module);
|
761
|
+
};
|
762
|
+
if(has("dojo-undef-api")){
|
763
|
+
result.undef = function(mid){
|
764
|
+
req.undef(mid, module);
|
765
|
+
};
|
766
|
+
}
|
767
|
+
if(has("dojo-sync-loader")){
|
768
|
+
result.syncLoadNls = function(mid){
|
769
|
+
var nlsModuleInfo = getModuleInfo(mid, module),
|
770
|
+
nlsModule = modules[nlsModuleInfo.mid];
|
771
|
+
if(!nlsModule || !nlsModule.executed){
|
772
|
+
cached = cache[nlsModuleInfo.mid] || cache[nlsModuleInfo.cacheId];
|
773
|
+
if(cached){
|
774
|
+
evalModuleText(cached);
|
775
|
+
nlsModule = modules[nlsModuleInfo.mid];
|
776
|
+
}
|
777
|
+
}
|
778
|
+
return nlsModule && nlsModule.executed && nlsModule.result;
|
779
|
+
};
|
780
|
+
}
|
781
|
+
|
782
|
+
}
|
783
|
+
return result;
|
784
|
+
},
|
785
|
+
|
786
|
+
execQ =
|
787
|
+
// The list of modules that need to be evaluated.
|
788
|
+
[],
|
789
|
+
|
790
|
+
defQ =
|
791
|
+
// The queue of define arguments sent to loader.
|
792
|
+
[],
|
793
|
+
|
794
|
+
waiting =
|
795
|
+
// The set of modules upon which the loader is waiting for definition to arrive
|
796
|
+
{},
|
797
|
+
|
798
|
+
setRequested = function(module){
|
799
|
+
module.injected = requested;
|
800
|
+
waiting[module.mid] = 1;
|
801
|
+
if(module.url){
|
802
|
+
waiting[module.url] = module.pack || 1;
|
803
|
+
}
|
804
|
+
},
|
805
|
+
|
806
|
+
setArrived = function(module){
|
807
|
+
module.injected = arrived;
|
808
|
+
delete waiting[module.mid];
|
809
|
+
if(module.url){
|
810
|
+
delete waiting[module.url];
|
811
|
+
}
|
812
|
+
if(isEmpty(waiting)){
|
813
|
+
clearTimer();
|
814
|
+
has("dojo-sync-loader") && legacyMode==xd && (legacyMode = sync);
|
815
|
+
}
|
816
|
+
},
|
817
|
+
|
818
|
+
execComplete = req.idle =
|
819
|
+
// says the loader has completed (or not) its work
|
820
|
+
function(){
|
821
|
+
return !defQ.length && isEmpty(waiting) && !execQ.length && !checkCompleteGuard;
|
822
|
+
},
|
823
|
+
|
824
|
+
runMapProg = function(targetMid, map){
|
825
|
+
// search for targetMid in map; return the map item if found; falsy otherwise
|
826
|
+
for(var i = 0; i < map.length; i++){
|
827
|
+
if(map[i][2].test(targetMid)){
|
828
|
+
return map[i];
|
829
|
+
}
|
830
|
+
}
|
831
|
+
return 0;
|
832
|
+
},
|
833
|
+
|
834
|
+
compactPath = function(path){
|
835
|
+
var result = [],
|
836
|
+
segment, lastSegment;
|
837
|
+
path = path.replace(/\\/g, '/').split('/');
|
838
|
+
while(path.length){
|
839
|
+
segment = path.shift();
|
840
|
+
if(segment==".." && result.length && lastSegment!=".."){
|
841
|
+
result.pop();
|
842
|
+
lastSegment = result[result.length - 1];
|
843
|
+
}else if(segment!="."){
|
844
|
+
result.push(lastSegment= segment);
|
845
|
+
} // else ignore "."
|
846
|
+
}
|
847
|
+
return result.join("/");
|
848
|
+
},
|
849
|
+
|
850
|
+
makeModuleInfo = function(pid, mid, pack, url, cacheId){
|
851
|
+
if(has("dojo-sync-loader")){
|
852
|
+
var xd= req.isXdUrl(url);
|
853
|
+
return {pid:pid, mid:mid, pack:pack, url:url, executed:0, def:0, isXd:xd, isAmd:!!(xd || (packs[pid] && packs[pid].isAmd)), cacheId:cacheId};
|
854
|
+
}else{
|
855
|
+
return {pid:pid, mid:mid, pack:pack, url:url, executed:0, def:0, cacheId:cacheId};
|
856
|
+
}
|
857
|
+
},
|
858
|
+
|
859
|
+
getModuleInfo_ = function(mid, referenceModule, packs, modules, baseUrl, packageMapProg, pathsMapProg, alwaysCreate){
|
860
|
+
// arguments are passed instead of using lexical variables so that this function my be used independent of the loader (e.g., the builder)
|
861
|
+
// alwaysCreate is useful in this case so that getModuleInfo never returns references to real modules owned by the loader
|
862
|
+
var pid, pack, midInPackage, mapProg, mapItem, path, url, result, isRelative, requestedMid, cacheId=0;
|
863
|
+
requestedMid = mid;
|
864
|
+
isRelative = /^\./.test(mid);
|
865
|
+
if(/(^\/)|(\:)|(\.js$)/.test(mid) || (isRelative && !referenceModule)){
|
866
|
+
// absolute path or protocol of .js filetype, or relative path but no reference module and therefore relative to page
|
867
|
+
// whatever it is, it's not a module but just a URL of some sort
|
868
|
+
return makeModuleInfo(0, mid, 0, mid);
|
869
|
+
}else{
|
870
|
+
// relative module ids are relative to the referenceModule; get rid of any dots
|
871
|
+
mid = compactPath(isRelative ? (referenceModule.mid + "/../" + mid) : mid);
|
872
|
+
if(/^\./.test(mid)){
|
873
|
+
throw makeError("irrationalPath", mid);
|
874
|
+
}
|
875
|
+
// find the package indicated by the mid, if any
|
876
|
+
mapProg = referenceModule && referenceModule.pack && referenceModule.pack.mapProg;
|
877
|
+
mapItem = (mapProg && runMapProg(mid, mapProg)) || runMapProg(mid, packageMapProg);
|
878
|
+
if(mapItem){
|
879
|
+
// mid specified a module that's a member of a package; figure out the package id and module id
|
880
|
+
// notice we expect pack.main to be valid with no pre or post slash
|
881
|
+
pid = mapItem[1];
|
882
|
+
mid = mid.substring(mapItem[3]);
|
883
|
+
pack = packs[pid];
|
884
|
+
if(!mid){
|
885
|
+
mid= pack.main;
|
886
|
+
}
|
887
|
+
midInPackage = mid;
|
888
|
+
cacheId = pack.reverseName + "/" + mid;
|
889
|
+
mid = pid + "/" + mid;
|
890
|
+
}else{
|
891
|
+
pid = "";
|
892
|
+
}
|
893
|
+
|
894
|
+
// search aliases
|
895
|
+
var candidateLength = 0,
|
896
|
+
candidate = 0;
|
897
|
+
forEach(aliases, function(pair){
|
898
|
+
var match = mid.match(pair[0]);
|
899
|
+
if(match && match.length>candidateLength){
|
900
|
+
candidate = isFunction(pair[1]) ? mid.replace(pair[0], pair[1]) : pair[1];
|
901
|
+
}
|
902
|
+
});
|
903
|
+
if(candidate){
|
904
|
+
return getModuleInfo_(candidate, 0, packs, modules, baseUrl, packageMapProg, pathsMapProg, alwaysCreate);
|
905
|
+
}
|
906
|
+
|
907
|
+
result = modules[mid];
|
908
|
+
if(result){
|
909
|
+
return alwaysCreate ? makeModuleInfo(result.pid, result.mid, result.pack, result.url, cacheId) : modules[mid];
|
910
|
+
}
|
911
|
+
}
|
912
|
+
// get here iff the sought-after module does not yet exist; therefore, we need to compute the URL given the
|
913
|
+
// fully resolved (i.e., all relative indicators and package mapping resolved) module id
|
914
|
+
|
915
|
+
mapItem = runMapProg(mid, pathsMapProg);
|
916
|
+
if(mapItem){
|
917
|
+
url = mapItem[1] + mid.substring(mapItem[3] - 1);
|
918
|
+
}else if(pid){
|
919
|
+
url = pack.location + "/" + midInPackage;
|
920
|
+
}else if(has("config-tlmSiblingOfDojo")){
|
921
|
+
url = "../" + mid;
|
922
|
+
}else{
|
923
|
+
url = mid;
|
924
|
+
}
|
925
|
+
// if result is not absolute, add baseUrl
|
926
|
+
if(!(/(^\/)|(\:)/.test(url))){
|
927
|
+
url = baseUrl + url;
|
928
|
+
}
|
929
|
+
url += ".js";
|
930
|
+
return makeModuleInfo(pid, mid, pack, compactPath(url), cacheId);
|
931
|
+
},
|
932
|
+
|
933
|
+
getModuleInfo = function(mid, referenceModule){
|
934
|
+
return getModuleInfo_(mid, referenceModule, packs, modules, req.baseUrl, packageMapProg, pathsMapProg);
|
935
|
+
},
|
936
|
+
|
937
|
+
resolvePluginResourceId = function(plugin, prid, referenceModule){
|
938
|
+
return plugin.normalize ? plugin.normalize(prid, function(mid){return toAbsMid(mid, referenceModule);}) : toAbsMid(prid, referenceModule);
|
939
|
+
},
|
940
|
+
|
941
|
+
dynamicPluginUidGenerator = 0,
|
942
|
+
|
943
|
+
getModule = function(mid, referenceModule, immediate){
|
944
|
+
// compute and optionally construct (if necessary) the module implied by the mid with respect to referenceModule
|
945
|
+
var match, plugin, prid, result;
|
946
|
+
match = mid.match(/^(.+?)\!(.*)$/);
|
947
|
+
if(match){
|
948
|
+
// name was <plugin-module>!<plugin-resource-id>
|
949
|
+
plugin = getModule(match[1], referenceModule, immediate);
|
950
|
+
|
951
|
+
if(has("dojo-sync-loader") && legacyMode == sync && !plugin.executed){
|
952
|
+
injectModule(plugin);
|
953
|
+
if(plugin.injected===arrived && !plugin.executed){
|
954
|
+
checkCompleteGuard++;
|
955
|
+
execModule(plugin);
|
956
|
+
checkIdle();
|
957
|
+
}
|
958
|
+
if(plugin.executed){
|
959
|
+
promoteModuleToPlugin(plugin);
|
960
|
+
}else{
|
961
|
+
// we are in xdomain mode for some reason
|
962
|
+
execQ.unshift(plugin);
|
963
|
+
}
|
964
|
+
}
|
965
|
+
|
966
|
+
|
967
|
+
|
968
|
+
if(plugin.executed === executed && !plugin.load){
|
969
|
+
// executed the module not knowing it was a plugin
|
970
|
+
promoteModuleToPlugin(plugin);
|
971
|
+
}
|
972
|
+
|
973
|
+
// if the plugin has not been loaded, then can't resolve the prid and must assume this plugin is dynamic until we find out otherwise
|
974
|
+
if(plugin.load){
|
975
|
+
prid = resolvePluginResourceId(plugin, match[2], referenceModule);
|
976
|
+
mid = (plugin.mid + "!" + (plugin.dynamic ? ++dynamicPluginUidGenerator + "!" : "") + prid);
|
977
|
+
}else{
|
978
|
+
prid = match[2];
|
979
|
+
mid = plugin.mid + "!" + (++dynamicPluginUidGenerator) + "!waitingForPlugin";
|
980
|
+
}
|
981
|
+
result = {plugin:plugin, mid:mid, req:createRequire(referenceModule), prid:prid};
|
982
|
+
}else{
|
983
|
+
result = getModuleInfo(mid, referenceModule);
|
984
|
+
}
|
985
|
+
return modules[result.mid] || (!immediate && (modules[result.mid] = result));
|
986
|
+
},
|
987
|
+
|
988
|
+
toAbsMid = req.toAbsMid = function(mid, referenceModule){
|
989
|
+
return getModuleInfo(mid, referenceModule).mid;
|
990
|
+
},
|
991
|
+
|
992
|
+
toUrl = req.toUrl = function(name, referenceModule){
|
993
|
+
var moduleInfo = getModuleInfo(name+"/x", referenceModule),
|
994
|
+
url = moduleInfo.url;
|
995
|
+
return fixupUrl(moduleInfo.pid===0 ?
|
996
|
+
// if pid===0, then name had a protocol or absolute path; either way, toUrl is the identify function in such cases
|
997
|
+
name :
|
998
|
+
// "/x.js" since getModuleInfo automatically appends ".js" and we appended "/x" to make name look likde a module id
|
999
|
+
url.substring(0, url.length-5)
|
1000
|
+
);
|
1001
|
+
},
|
1002
|
+
|
1003
|
+
nonModuleProps = {
|
1004
|
+
injected: arrived,
|
1005
|
+
executed: executed,
|
1006
|
+
def: nonmodule,
|
1007
|
+
result: nonmodule
|
1008
|
+
},
|
1009
|
+
|
1010
|
+
makeCjs = function(mid){
|
1011
|
+
return modules[mid] = mix({mid:mid}, nonModuleProps);
|
1012
|
+
},
|
1013
|
+
|
1014
|
+
cjsRequireModule = makeCjs("require"),
|
1015
|
+
cjsExportsModule = makeCjs("exports"),
|
1016
|
+
cjsModuleModule = makeCjs("module"),
|
1017
|
+
|
1018
|
+
runFactory = function(module, args){
|
1019
|
+
req.trace("loader-run-factory", [module.mid]);
|
1020
|
+
var factory = module.def,
|
1021
|
+
result;
|
1022
|
+
has("dojo-sync-loader") && syncExecStack.unshift(module);
|
1023
|
+
if(has("config-dojo-loader-catches")){
|
1024
|
+
try{
|
1025
|
+
result= isFunction(factory) ? factory.apply(null, args) : factory;
|
1026
|
+
}catch(e){
|
1027
|
+
signal(error, module.result = makeError("factoryThrew", [module, e]));
|
1028
|
+
}
|
1029
|
+
}else{
|
1030
|
+
result= isFunction(factory) ? factory.apply(null, args) : factory;
|
1031
|
+
}
|
1032
|
+
module.result = result===undefined && module.cjs ? module.cjs.exports : result;
|
1033
|
+
has("dojo-sync-loader") && syncExecStack.shift(module);
|
1034
|
+
},
|
1035
|
+
|
1036
|
+
abortExec = {},
|
1037
|
+
|
1038
|
+
defOrder = 0,
|
1039
|
+
|
1040
|
+
promoteModuleToPlugin = function(pluginModule){
|
1041
|
+
var plugin = pluginModule.result;
|
1042
|
+
pluginModule.dynamic = plugin.dynamic;
|
1043
|
+
pluginModule.normalize = plugin.normalize;
|
1044
|
+
pluginModule.load = plugin.load;
|
1045
|
+
return pluginModule;
|
1046
|
+
},
|
1047
|
+
|
1048
|
+
resolvePluginLoadQ = function(plugin){
|
1049
|
+
// plugins is a newly executed module that has a loadQ waiting to run
|
1050
|
+
|
1051
|
+
// step 1: traverse the loadQ and fixup the mid and prid; remember the map from original mid to new mid
|
1052
|
+
// recall the original mid was created before the plugin was on board and therefore it was impossible to
|
1053
|
+
// compute the final mid; accordingly, prid may or may not change, but the mid will definitely change
|
1054
|
+
var map = {};
|
1055
|
+
forEach(plugin.loadQ, function(pseudoPluginResource){
|
1056
|
+
// manufacture and insert the real module in modules
|
1057
|
+
var pseudoMid = pseudoPluginResource.mid,
|
1058
|
+
prid = resolvePluginResourceId(plugin, pseudoPluginResource.prid, pseudoPluginResource.req.module),
|
1059
|
+
mid = plugin.dynamic ? pseudoPluginResource.mid.replace(/waitingForPlugin$/, prid) : (plugin.mid + "!" + prid),
|
1060
|
+
pluginResource = mix(mix({}, pseudoPluginResource), {mid:mid, prid:prid, injected:0});
|
1061
|
+
if(!modules[mid]){
|
1062
|
+
// create a new (the real) plugin resource and inject it normally now that the plugin is on board
|
1063
|
+
injectPlugin(modules[mid] = pluginResource);
|
1064
|
+
} // else this was a duplicate request for the same (plugin, rid) for a nondynamic plugin
|
1065
|
+
|
1066
|
+
// pluginResource is really just a placeholder with the wrong mid (because we couldn't calculate it until the plugin was on board)
|
1067
|
+
// mark is as arrived and delete it from modules; the real module was requested above
|
1068
|
+
map[pseudoPluginResource.mid] = modules[mid];
|
1069
|
+
setArrived(pseudoPluginResource);
|
1070
|
+
delete modules[pseudoPluginResource.mid];
|
1071
|
+
});
|
1072
|
+
plugin.loadQ = 0;
|
1073
|
+
|
1074
|
+
// step2: replace all references to any placeholder modules with real modules
|
1075
|
+
var substituteModules = function(module){
|
1076
|
+
for(var replacement, deps = module.deps || [], i = 0; i<deps.length; i++){
|
1077
|
+
replacement = map[deps[i].mid];
|
1078
|
+
if(replacement){
|
1079
|
+
deps[i] = replacement;
|
1080
|
+
}
|
1081
|
+
}
|
1082
|
+
};
|
1083
|
+
for(var p in modules){
|
1084
|
+
substituteModules(modules[p]);
|
1085
|
+
}
|
1086
|
+
forEach(execQ, substituteModules);
|
1087
|
+
},
|
1088
|
+
|
1089
|
+
finishExec = function(module){
|
1090
|
+
req.trace("loader-finish-exec", [module.mid]);
|
1091
|
+
module.executed = executed;
|
1092
|
+
module.defOrder = defOrder++;
|
1093
|
+
has("dojo-sync-loader") && forEach(module.provides, function(cb){ cb(); });
|
1094
|
+
if(module.loadQ){
|
1095
|
+
// the module was a plugin
|
1096
|
+
promoteModuleToPlugin(module);
|
1097
|
+
resolvePluginLoadQ(module);
|
1098
|
+
}
|
1099
|
+
// remove all occurences of this module from the execQ
|
1100
|
+
for(i = 0; i < execQ.length;){
|
1101
|
+
if(execQ[i] === module){
|
1102
|
+
execQ.splice(i, 1);
|
1103
|
+
}else{
|
1104
|
+
i++;
|
1105
|
+
}
|
1106
|
+
}
|
1107
|
+
},
|
1108
|
+
|
1109
|
+
circleTrace = [],
|
1110
|
+
|
1111
|
+
execModule = function(module, strict){
|
1112
|
+
// run the dependency vector, then run the factory for module
|
1113
|
+
if(module.executed === executing){
|
1114
|
+
req.trace("loader-circular-dependency", [circleTrace.concat(mid).join("->")]);
|
1115
|
+
return (!module.def || strict) ? abortExec : (module.cjs && module.cjs.exports);
|
1116
|
+
}
|
1117
|
+
// at this point the module is either not executed or fully executed
|
1118
|
+
|
1119
|
+
|
1120
|
+
if(!module.executed){
|
1121
|
+
if(!module.def){
|
1122
|
+
return abortExec;
|
1123
|
+
}
|
1124
|
+
var mid = module.mid,
|
1125
|
+
deps = module.deps || [],
|
1126
|
+
arg, argResult,
|
1127
|
+
args = [],
|
1128
|
+
i = 0;
|
1129
|
+
|
1130
|
+
if(has("dojo-trace-api")){
|
1131
|
+
circleTrace.push(mid);
|
1132
|
+
req.trace("loader-exec-module", ["exec", circleTrace.length, mid]);
|
1133
|
+
}
|
1134
|
+
|
1135
|
+
// for circular dependencies, assume the first module encountered was executed OK
|
1136
|
+
// modules that circularly depend on a module that has not run its factory will get
|
1137
|
+
// the premade cjs.exports===module.result. They can take a reference to this object and/or
|
1138
|
+
// add properties to it. When the module finally runs its factory, the factory can
|
1139
|
+
// read/write/replace this object. Notice that so long as the object isn't replaced, any
|
1140
|
+
// reference taken earlier while walking the deps list is still valid.
|
1141
|
+
module.executed = executing;
|
1142
|
+
while(i < deps.length){
|
1143
|
+
arg = deps[i++];
|
1144
|
+
argResult = ((arg === cjsRequireModule) ? createRequire(module) :
|
1145
|
+
((arg === cjsExportsModule) ? module.cjs.exports :
|
1146
|
+
((arg === cjsModuleModule) ? module.cjs :
|
1147
|
+
execModule(arg, strict))));
|
1148
|
+
if(argResult === abortExec){
|
1149
|
+
module.executed = 0;
|
1150
|
+
req.trace("loader-exec-module", ["abort", mid]);
|
1151
|
+
has("dojo-trace-api") && circleTrace.pop();
|
1152
|
+
return abortExec;
|
1153
|
+
}
|
1154
|
+
args.push(argResult);
|
1155
|
+
}
|
1156
|
+
runFactory(module, args);
|
1157
|
+
finishExec(module);
|
1158
|
+
}
|
1159
|
+
// at this point the module is guaranteed fully executed
|
1160
|
+
|
1161
|
+
has("dojo-trace-api") && circleTrace.pop();
|
1162
|
+
return module.result;
|
1163
|
+
},
|
1164
|
+
|
1165
|
+
|
1166
|
+
checkCompleteGuard = 0,
|
1167
|
+
|
1168
|
+
checkComplete = function(){
|
1169
|
+
// keep going through the execQ as long as at least one factory is executed
|
1170
|
+
// plugins, recursion, cached modules all make for many execution path possibilities
|
1171
|
+
if(checkCompleteGuard){
|
1172
|
+
return;
|
1173
|
+
}
|
1174
|
+
checkCompleteGuard++;
|
1175
|
+
checkDojoRequirePlugin();
|
1176
|
+
for(var currentDefOrder, module, i = 0; i < execQ.length;){
|
1177
|
+
currentDefOrder = defOrder;
|
1178
|
+
module = execQ[i];
|
1179
|
+
execModule(module);
|
1180
|
+
if(currentDefOrder!=defOrder){
|
1181
|
+
// defOrder was bumped one or more times indicating something was executed (note, this indicates
|
1182
|
+
// the execQ was modified, maybe a lot (for example a later module causes an earlier module to execute)
|
1183
|
+
checkDojoRequirePlugin();
|
1184
|
+
i = 0;
|
1185
|
+
}else{
|
1186
|
+
// nothing happened; check the next module in the exec queue
|
1187
|
+
i++;
|
1188
|
+
}
|
1189
|
+
}
|
1190
|
+
checkIdle();
|
1191
|
+
},
|
1192
|
+
|
1193
|
+
checkIdle = function(){
|
1194
|
+
checkCompleteGuard--;
|
1195
|
+
if(execComplete()){
|
1196
|
+
signal("idle", []);
|
1197
|
+
}
|
1198
|
+
};
|
1199
|
+
|
1200
|
+
|
1201
|
+
if(has("dojo-undef-api")){
|
1202
|
+
req.undef = function(moduleId, referenceModule){
|
1203
|
+
// In order to reload a module, it must be undefined (this routine) and then re-requested.
|
1204
|
+
// This is useful for testing frameworks (at least).
|
1205
|
+
var module = getModule(moduleId, referenceModule);
|
1206
|
+
setArrived(module);
|
1207
|
+
delete modules[module.mid];
|
1208
|
+
};
|
1209
|
+
}
|
1210
|
+
|
1211
|
+
if(has("dojo-inject-api")){
|
1212
|
+
if(has("dojo-loader-eval-hint-url")===undefined){
|
1213
|
+
has.add("dojo-loader-eval-hint-url", 1);
|
1214
|
+
}
|
1215
|
+
|
1216
|
+
var fixupUrl= function(url){
|
1217
|
+
url += ""; // make sure url is a Javascript string (some paths may be a Java string)
|
1218
|
+
return url + (cacheBust ? ((/\?/.test(url) ? "&" : "?") + cacheBust) : "");
|
1219
|
+
},
|
1220
|
+
|
1221
|
+
injectPlugin = function(
|
1222
|
+
module
|
1223
|
+
){
|
1224
|
+
// injects the plugin module given by module; may have to inject the plugin itself
|
1225
|
+
var plugin = module.plugin;
|
1226
|
+
|
1227
|
+
if(plugin.executed === executed && !plugin.load){
|
1228
|
+
// executed the module not knowing it was a plugin
|
1229
|
+
promoteModuleToPlugin(plugin);
|
1230
|
+
}
|
1231
|
+
|
1232
|
+
var onLoad = function(def){
|
1233
|
+
module.result = def;
|
1234
|
+
setArrived(module);
|
1235
|
+
finishExec(module);
|
1236
|
+
checkComplete();
|
1237
|
+
};
|
1238
|
+
|
1239
|
+
if(plugin.load){
|
1240
|
+
plugin.load(module.prid, module.req, onLoad);
|
1241
|
+
}else if(plugin.loadQ){
|
1242
|
+
plugin.loadQ.push(module);
|
1243
|
+
}else{
|
1244
|
+
// the unshift instead of push is important: we don't want plugins to execute as
|
1245
|
+
// dependencies of some other module because this may cause circles when the plugin
|
1246
|
+
// loadQ is run; also, generally, we want plugins to run early since they may load
|
1247
|
+
// several other modules and therefore can potentially unblock many modules
|
1248
|
+
plugin.loadQ = [module];
|
1249
|
+
execQ.unshift(plugin);
|
1250
|
+
injectModule(plugin);
|
1251
|
+
}
|
1252
|
+
},
|
1253
|
+
|
1254
|
+
// for IE, injecting a module may result in a recursive execution if the module is in the cache
|
1255
|
+
|
1256
|
+
cached = 0,
|
1257
|
+
|
1258
|
+
injectingModule = 0,
|
1259
|
+
|
1260
|
+
injectingCachedModule = 0,
|
1261
|
+
|
1262
|
+
evalModuleText = function(text, module){
|
1263
|
+
// see def() for the injectingCachedModule bracket; it simply causes a short, safe curcuit
|
1264
|
+
injectingCachedModule = 1;
|
1265
|
+
if(has("config-dojo-loader-catches")){
|
1266
|
+
try{
|
1267
|
+
if(text===cached){
|
1268
|
+
cached.call(null);
|
1269
|
+
}else{
|
1270
|
+
req.eval(text, has("dojo-loader-eval-hint-url") ? module.url : module.mid);
|
1271
|
+
}
|
1272
|
+
}catch(e){
|
1273
|
+
signal(error, makeError("evalModuleThrew", module));
|
1274
|
+
}
|
1275
|
+
}else{
|
1276
|
+
if(text===cached){
|
1277
|
+
cached.call(null);
|
1278
|
+
}else{
|
1279
|
+
req.eval(text, has("dojo-loader-eval-hint-url") ? module.url : module.mid);
|
1280
|
+
}
|
1281
|
+
}
|
1282
|
+
injectingCachedModule = 0;
|
1283
|
+
},
|
1284
|
+
|
1285
|
+
injectModule = function(module){
|
1286
|
+
// Inject the module. In the browser environment, this means appending a script element into
|
1287
|
+
// the document; in other environments, it means loading a file.
|
1288
|
+
//
|
1289
|
+
// If in synchronous mode, then get the module synchronously if it's not xdomainLoading.
|
1290
|
+
|
1291
|
+
var mid = module.mid,
|
1292
|
+
url = module.url;
|
1293
|
+
if(module.executed || module.injected || waiting[mid] || (module.url && ((module.pack && waiting[module.url]===module.pack) || waiting[module.url]==1))){
|
1294
|
+
return;
|
1295
|
+
}
|
1296
|
+
setRequested(module);
|
1297
|
+
|
1298
|
+
if(has("dojo-combo-api")){
|
1299
|
+
var viaCombo = 0;
|
1300
|
+
if(module.plugin && module.plugin.isCombo){
|
1301
|
+
// a combo plugin; therefore, must be handled by combo service
|
1302
|
+
// the prid should have already been converted to a URL (if required by the plugin) during
|
1303
|
+
// the normalze process; in any event, there is no way for the loader to know how to
|
1304
|
+
// to the conversion; therefore the third argument is zero
|
1305
|
+
req.combo.add(module.plugin.mid, module.prid, 0, req);
|
1306
|
+
viaCombo = 1;
|
1307
|
+
}else if(!module.plugin){
|
1308
|
+
viaCombo = req.combo.add(0, module.mid, module.url, req);
|
1309
|
+
}
|
1310
|
+
if(viaCombo){
|
1311
|
+
comboPending= 1;
|
1312
|
+
return;
|
1313
|
+
}
|
1314
|
+
}
|
1315
|
+
|
1316
|
+
if(module.plugin){
|
1317
|
+
injectPlugin(module);
|
1318
|
+
return;
|
1319
|
+
} // else a normal module (not a plugin)
|
1320
|
+
|
1321
|
+
|
1322
|
+
var onLoadCallback = function(){
|
1323
|
+
runDefQ(module);
|
1324
|
+
if(module.injected !== arrived){
|
1325
|
+
// the script that contained the module arrived and has been executed yet
|
1326
|
+
// nothing was added to the defQ (so it wasn't an AMD module) and the module
|
1327
|
+
// wasn't marked as arrived by dojo.provide (so it wasn't a v1.6- module);
|
1328
|
+
// therefore, it must not have been a module; adjust state accordingly
|
1329
|
+
setArrived(module);
|
1330
|
+
mix(module, nonModuleProps);
|
1331
|
+
}
|
1332
|
+
|
1333
|
+
if(has("dojo-sync-loader") && legacyMode){
|
1334
|
+
// must call checkComplete even in for sync loader because we may be in xdomainLoading mode;
|
1335
|
+
// but, if xd loading, then don't call checkComplete until out of the current sync traversal
|
1336
|
+
// in order to preserve order of execution of the dojo.required modules
|
1337
|
+
!syncExecStack.length && checkComplete();
|
1338
|
+
}else{
|
1339
|
+
checkComplete();
|
1340
|
+
}
|
1341
|
+
};
|
1342
|
+
cached = cache[mid] || cache[module.cacheId];
|
1343
|
+
if(cached){
|
1344
|
+
req.trace("loader-inject", ["cache", module.mid, url]);
|
1345
|
+
evalModuleText(cached, module);
|
1346
|
+
onLoadCallback();
|
1347
|
+
return;
|
1348
|
+
}
|
1349
|
+
if(has("dojo-sync-loader") && legacyMode){
|
1350
|
+
if(module.isXd){
|
1351
|
+
// switch to async mode temporarily; if current legacyMode!=sync, then is must be one of {legacyAsync, xd, false}
|
1352
|
+
legacyMode==sync && (legacyMode = xd);
|
1353
|
+
// fall through and load via script injection
|
1354
|
+
}else if(module.isAmd && legacyMode!=sync){
|
1355
|
+
// fall through and load via script injection
|
1356
|
+
}else{
|
1357
|
+
// mode may be sync, xd/legacyAsync, or async; module may be AMD or legacy; but module is always located on the same domain
|
1358
|
+
var xhrCallback = function(text){
|
1359
|
+
if(legacyMode==sync){
|
1360
|
+
// the top of syncExecStack gives the current synchronously executing module; the loader needs
|
1361
|
+
// to know this if it has to switch to async loading in the middle of evaluating a legacy module
|
1362
|
+
// this happens when a modules dojo.require's a module that must be loaded async because it's xdomain
|
1363
|
+
// (using unshift/shift because there is no back() methods for Javascript arrays)
|
1364
|
+
syncExecStack.unshift(module);
|
1365
|
+
evalModuleText(text, module);
|
1366
|
+
syncExecStack.shift();
|
1367
|
+
|
1368
|
+
// maybe the module was an AMD module
|
1369
|
+
runDefQ(module);
|
1370
|
+
|
1371
|
+
// legacy modules never get to defineModule() => cjs and injected never set; also evaluation implies executing
|
1372
|
+
if(!module.cjs){
|
1373
|
+
setArrived(module);
|
1374
|
+
finishExec(module);
|
1375
|
+
}
|
1376
|
+
|
1377
|
+
if(module.finish){
|
1378
|
+
// while synchronously evaluating this module, dojo.require was applied referencing a module
|
1379
|
+
// that had to be loaded async; therefore, the loader stopped answering all dojo.require
|
1380
|
+
// requests so they could be answered completely in the correct sequence; module.finish gives
|
1381
|
+
// the list of dojo.requires that must be re-applied once all target modules are available;
|
1382
|
+
// make a synthetic module to execute the dojo.require's in the correct order
|
1383
|
+
|
1384
|
+
// compute a guarnateed-unique mid for the synthetic finish module; remember the finish vector; remove it from the reference module
|
1385
|
+
// TODO: can we just leave the module.finish...what's it hurting?
|
1386
|
+
var finishMid = mid + "*finish",
|
1387
|
+
finish = module.finish;
|
1388
|
+
delete module.finish;
|
1389
|
+
|
1390
|
+
def(finishMid, ["dojo", ("dojo/require!" + finish.join(",")).replace(/\./g, "/")], function(dojo){
|
1391
|
+
forEach(finish, function(mid){ dojo.require(mid); });
|
1392
|
+
});
|
1393
|
+
// unshift, not push, which causes the current traversal to be reattempted from the top
|
1394
|
+
execQ.unshift(getModule(finishMid));
|
1395
|
+
}
|
1396
|
+
onLoadCallback();
|
1397
|
+
}else{
|
1398
|
+
text = transformToAmd(module, text);
|
1399
|
+
if(text){
|
1400
|
+
evalModuleText(text, module);
|
1401
|
+
onLoadCallback();
|
1402
|
+
}else{
|
1403
|
+
// if transformToAmd returned falsy, then the module was already AMD and it can be script-injected
|
1404
|
+
// do so to improve debugability(even though it means another download...which probably won't happen with a good browser cache)
|
1405
|
+
injectingModule = module;
|
1406
|
+
req.injectUrl(fixupUrl(url), onLoadCallback, module);
|
1407
|
+
injectingModule = 0;
|
1408
|
+
}
|
1409
|
+
}
|
1410
|
+
};
|
1411
|
+
|
1412
|
+
req.trace("loader-inject", ["xhr", module.mid, url, legacyMode!=sync]);
|
1413
|
+
if(has("config-dojo-loader-catches")){
|
1414
|
+
try{
|
1415
|
+
req.getText(url, legacyMode!=sync, xhrCallback);
|
1416
|
+
}catch(e){
|
1417
|
+
signal(error, makeError("xhrInjectFailed", [module, e]));
|
1418
|
+
}
|
1419
|
+
}else{
|
1420
|
+
req.getText(url, legacyMode!=sync, xhrCallback);
|
1421
|
+
}
|
1422
|
+
return;
|
1423
|
+
}
|
1424
|
+
} // else async mode or fell through in xdomain loading mode; either way, load by script injection
|
1425
|
+
req.trace("loader-inject", ["script", module.mid, url]);
|
1426
|
+
injectingModule = module;
|
1427
|
+
req.injectUrl(fixupUrl(url), onLoadCallback, module);
|
1428
|
+
injectingModule = 0;
|
1429
|
+
},
|
1430
|
+
|
1431
|
+
defineModule = function(module, deps, def){
|
1432
|
+
req.trace("loader-define-module", [module.mid, deps]);
|
1433
|
+
|
1434
|
+
if(has("dojo-combo-api") && module.plugin && module.plugin.isCombo){
|
1435
|
+
// the module is a plugin resource loaded by the combo service
|
1436
|
+
// note: check for module.plugin should be enough since normal plugin resources should
|
1437
|
+
// not follow this path; module.plugin.isCombo is future-proofing belt and suspenders
|
1438
|
+
module.result = isFunction(def) ? def() : def;
|
1439
|
+
setArrived(module);
|
1440
|
+
finishExec(module);
|
1441
|
+
return module;
|
1442
|
+
};
|
1443
|
+
|
1444
|
+
var mid = module.mid;
|
1445
|
+
if(module.injected === arrived){
|
1446
|
+
signal(error, makeError("multipleDefine", module));
|
1447
|
+
return module;
|
1448
|
+
}
|
1449
|
+
mix(module, {
|
1450
|
+
deps: deps,
|
1451
|
+
def: def,
|
1452
|
+
cjs: {
|
1453
|
+
id: module.mid,
|
1454
|
+
uri: module.url,
|
1455
|
+
exports: (module.result = {}),
|
1456
|
+
setExports: function(exports){
|
1457
|
+
module.cjs.exports = exports;
|
1458
|
+
}
|
1459
|
+
}
|
1460
|
+
});
|
1461
|
+
|
1462
|
+
// resolve deps with respect to this module
|
1463
|
+
for(var i = 0; i < deps.length; i++){
|
1464
|
+
deps[i] = getModule(deps[i], module);
|
1465
|
+
}
|
1466
|
+
|
1467
|
+
if(has("dojo-sync-loader") && legacyMode && !waiting[mid]){
|
1468
|
+
// the module showed up without being asked for; it was probably in a <script> element
|
1469
|
+
injectDependencies(module);
|
1470
|
+
execQ.push(module);
|
1471
|
+
checkComplete();
|
1472
|
+
}
|
1473
|
+
setArrived(module);
|
1474
|
+
|
1475
|
+
if(!isFunction(def) && !deps.length){
|
1476
|
+
module.result = def;
|
1477
|
+
finishExec(module);
|
1478
|
+
}
|
1479
|
+
|
1480
|
+
return module;
|
1481
|
+
},
|
1482
|
+
|
1483
|
+
runDefQ = function(referenceModule, mids){
|
1484
|
+
// defQ is an array of [id, dependencies, factory]
|
1485
|
+
// mids (if any) is a vector of mids given by a combo service
|
1486
|
+
var definedModules = [],
|
1487
|
+
module, args;
|
1488
|
+
while(defQ.length){
|
1489
|
+
args = defQ.shift();
|
1490
|
+
mids && (args[0]= mids.shift());
|
1491
|
+
// explicit define indicates possible multiple modules in a single file; delay injecting dependencies until defQ fully
|
1492
|
+
// processed since modules earlier in the queue depend on already-arrived modules that are later in the queue
|
1493
|
+
// TODO: what if no args[0] and no referenceModule
|
1494
|
+
module = (args[0] && getModule(args[0])) || referenceModule;
|
1495
|
+
definedModules.push([module, args[1], args[2]]);
|
1496
|
+
}
|
1497
|
+
consumePendingCacheInsert(referenceModule);
|
1498
|
+
forEach(definedModules, function(args){
|
1499
|
+
injectDependencies(defineModule.apply(null, args));
|
1500
|
+
});
|
1501
|
+
};
|
1502
|
+
}
|
1503
|
+
|
1504
|
+
var timerId = 0,
|
1505
|
+
clearTimer = noop,
|
1506
|
+
startTimer = noop;
|
1507
|
+
if(has("dojo-timeout-api")){
|
1508
|
+
// Timer machinery that monitors how long the loader is waiting and signals an error when the timer runs out.
|
1509
|
+
clearTimer = function(){
|
1510
|
+
timerId && clearTimeout(timerId);
|
1511
|
+
timerId = 0;
|
1512
|
+
},
|
1513
|
+
|
1514
|
+
startTimer = function(){
|
1515
|
+
clearTimer();
|
1516
|
+
req.waitms && (timerId = setTimeout(function(){
|
1517
|
+
clearTimer();
|
1518
|
+
signal(error, makeError("timeout", waiting));
|
1519
|
+
}, req.waitms));
|
1520
|
+
};
|
1521
|
+
}
|
1522
|
+
|
1523
|
+
if(has("dom")){
|
1524
|
+
has.add("ie-event-behavior", doc.attachEvent && (typeof opera === "undefined" || opera.toString() != "[object Opera]"));
|
1525
|
+
}
|
1526
|
+
|
1527
|
+
if(has("dom") && (has("dojo-inject-api") || has("dojo-dom-ready-api"))){
|
1528
|
+
var domOn = function(node, eventName, ieEventName, handler){
|
1529
|
+
// Add an event listener to a DOM node using the API appropriate for the current browser;
|
1530
|
+
// return a function that will disconnect the listener.
|
1531
|
+
if(!has("ie-event-behavior")){
|
1532
|
+
node.addEventListener(eventName, handler, false);
|
1533
|
+
return function(){
|
1534
|
+
node.removeEventListener(eventName, handler, false);
|
1535
|
+
};
|
1536
|
+
}else{
|
1537
|
+
node.attachEvent(ieEventName, handler);
|
1538
|
+
return function(){
|
1539
|
+
node.detachEvent(ieEventName, handler);
|
1540
|
+
};
|
1541
|
+
}
|
1542
|
+
},
|
1543
|
+
windowOnLoadListener = domOn(window, "load", "onload", function(){
|
1544
|
+
req.pageLoaded = 1;
|
1545
|
+
doc.readyState!="complete" && (doc.readyState = "complete");
|
1546
|
+
windowOnLoadListener();
|
1547
|
+
});
|
1548
|
+
|
1549
|
+
if(has("dojo-inject-api")){
|
1550
|
+
// if the loader is on the page, there must be at least one script element
|
1551
|
+
// getting its parent and then doing insertBefore solves the "Operation Aborted"
|
1552
|
+
// error in IE from appending to a node that isn't properly closed; see
|
1553
|
+
// dojo/tests/_base/loader/requirejs/simple-badbase.html for an example
|
1554
|
+
var sibling = doc.getElementsByTagName("script")[0],
|
1555
|
+
insertPoint= sibling.parentNode;
|
1556
|
+
req.injectUrl = function(url, callback, owner){
|
1557
|
+
// insert a script element to the insert-point element with src=url;
|
1558
|
+
// apply callback upon detecting the script has loaded.
|
1559
|
+
|
1560
|
+
startTimer();
|
1561
|
+
var node = owner.node = doc.createElement("script"),
|
1562
|
+
onLoad = function(e){
|
1563
|
+
e = e || window.event;
|
1564
|
+
var node = e.target || e.srcElement;
|
1565
|
+
if(e.type === "load" || /complete|loaded/.test(node.readyState)){
|
1566
|
+
disconnector();
|
1567
|
+
callback && callback();
|
1568
|
+
}
|
1569
|
+
},
|
1570
|
+
disconnector = domOn(node, "load", "onreadystatechange", onLoad);
|
1571
|
+
node.type = "text/javascript";
|
1572
|
+
node.charset = "utf-8";
|
1573
|
+
node.src = url;
|
1574
|
+
insertPoint.insertBefore(node, sibling);
|
1575
|
+
return node;
|
1576
|
+
};
|
1577
|
+
}
|
1578
|
+
}
|
1579
|
+
|
1580
|
+
if(has("dojo-log-api")){
|
1581
|
+
req.log = function(){
|
1582
|
+
try{
|
1583
|
+
for(var i = 0; i < arguments.length; i++){
|
1584
|
+
console.log(arguments[i]);
|
1585
|
+
}
|
1586
|
+
}catch(e){}
|
1587
|
+
};
|
1588
|
+
}else{
|
1589
|
+
req.log = noop;
|
1590
|
+
}
|
1591
|
+
|
1592
|
+
if(has("dojo-trace-api")){
|
1593
|
+
var trace = req.trace = function(
|
1594
|
+
group, // the trace group to which this application belongs
|
1595
|
+
args // the contents of the trace
|
1596
|
+
){
|
1597
|
+
///
|
1598
|
+
// Tracing interface by group.
|
1599
|
+
//
|
1600
|
+
// Sends the contents of args to the console iff (req.trace.on && req.trace[group])
|
1601
|
+
|
1602
|
+
if(trace.on && trace.group[group]){
|
1603
|
+
signal("trace", [group, args]);
|
1604
|
+
for(var arg, dump = [], text= "trace:" + group + (args.length ? (":" + args[0]) : ""), i= 1; i<args.length;){
|
1605
|
+
arg = args[i++];
|
1606
|
+
if(isString(arg)){
|
1607
|
+
text += ", " + arg;
|
1608
|
+
}else{
|
1609
|
+
dump.push(arg);
|
1610
|
+
}
|
1611
|
+
}
|
1612
|
+
req.log(text);
|
1613
|
+
dump.length && dump.push(".");
|
1614
|
+
req.log.apply(req, dump);
|
1615
|
+
}
|
1616
|
+
};
|
1617
|
+
mix(trace, {
|
1618
|
+
on:1,
|
1619
|
+
group:{},
|
1620
|
+
set:function(group, value){
|
1621
|
+
if(isString(group)){
|
1622
|
+
trace.group[group]= value;
|
1623
|
+
}else{
|
1624
|
+
mix(trace.group, group);
|
1625
|
+
}
|
1626
|
+
}
|
1627
|
+
});
|
1628
|
+
trace.set(mix(mix(mix({}, defaultConfig.trace), userConfig.trace), dojoSniffConfig.trace));
|
1629
|
+
on("config", function(config){
|
1630
|
+
config.trace && trace.set(config.trace);
|
1631
|
+
});
|
1632
|
+
}else{
|
1633
|
+
req.trace = noop;
|
1634
|
+
}
|
1635
|
+
|
1636
|
+
var def = function(
|
1637
|
+
mid, //(commonjs.moduleId, optional) list of modules to be loaded before running factory
|
1638
|
+
dependencies, //(array of commonjs.moduleId, optional)
|
1639
|
+
factory //(any)
|
1640
|
+
){
|
1641
|
+
///
|
1642
|
+
// Advises the loader of a module factory. //Implements http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition.
|
1643
|
+
///
|
1644
|
+
//note
|
1645
|
+
// CommonJS factory scan courtesy of http://requirejs.org
|
1646
|
+
|
1647
|
+
var arity = arguments.length,
|
1648
|
+
args = 0,
|
1649
|
+
defaultDeps = ["require", "exports", "module"];
|
1650
|
+
|
1651
|
+
if(has("dojo-amd-factory-scan")){
|
1652
|
+
if(arity == 1 && isFunction(mid)){
|
1653
|
+
dependencies = [];
|
1654
|
+
mid.toString()
|
1655
|
+
.replace(/(\/\*([\s\S]*?)\*\/|\/\/(.*)$)/mg, "")
|
1656
|
+
.replace(/require\(["']([\w\!\-_\.\/]+)["']\)/g, function (match, dep){
|
1657
|
+
dependencies.push(dep);
|
1658
|
+
});
|
1659
|
+
args = [0, defaultDeps.concat(dependencies), mid];
|
1660
|
+
}
|
1661
|
+
}
|
1662
|
+
if(!args){
|
1663
|
+
args = arity == 1 ? [0, defaultDeps, mid] :
|
1664
|
+
(arity == 2 ? (isArray(mid) ? [0, mid, dependencies] : (isFunction(dependencies) ? [mid, defaultDeps, dependencies] : [mid, [], dependencies])) :
|
1665
|
+
[mid, dependencies, factory]);
|
1666
|
+
}
|
1667
|
+
req.trace("loader-define", args.slice(0, 2));
|
1668
|
+
var targetModule = args[0] && getModule(args[0]),
|
1669
|
+
module;
|
1670
|
+
if(targetModule && !waiting[targetModule.mid]){
|
1671
|
+
// given a mid that hasn't been requested; therefore, defined through means other than injecting
|
1672
|
+
// consequent to a require() or define() application; examples include defining modules on-the-fly
|
1673
|
+
// due to some code path or including a module in a script element. In any case,
|
1674
|
+
// there is no callback waiting to finish processing and nothing to trigger the defQ and the
|
1675
|
+
// dependencies are never requested; therefore, do it here.
|
1676
|
+
injectDependencies(defineModule(targetModule, args[1], args[2]));
|
1677
|
+
}else if(!has("ie-event-behavior") || !has("host-browser") || injectingCachedModule){
|
1678
|
+
// not IE path: anonymous module and therefore must have been injected; therefore, onLoad will fire immediately
|
1679
|
+
// after script finishes being evaluated and the defQ can be run from that callback to detect the module id
|
1680
|
+
defQ.push(args);
|
1681
|
+
}else{
|
1682
|
+
// IE path: possibly anonymous module and therefore injected; therefore, cannot depend on 1-to-1,
|
1683
|
+
// in-order exec of onLoad with script eval (since it's IE) and must manually detect here
|
1684
|
+
targetModule = targetModule || injectingModule;
|
1685
|
+
if(!targetModule){
|
1686
|
+
for(mid in waiting){
|
1687
|
+
module = modules[mid];
|
1688
|
+
if(module && module.node && module.node.readyState === 'interactive'){
|
1689
|
+
targetModule = module;
|
1690
|
+
break;
|
1691
|
+
}
|
1692
|
+
}
|
1693
|
+
if(has("dojo-combo-api") && !targetModule){
|
1694
|
+
for(var i = 0; i<combosPending.length; i++){
|
1695
|
+
targetModule = combosPending[i];
|
1696
|
+
if(targetModule.node && targetModule.node.readyState === 'interactive'){
|
1697
|
+
break;
|
1698
|
+
}
|
1699
|
+
targetModule= 0;
|
1700
|
+
}
|
1701
|
+
}
|
1702
|
+
}
|
1703
|
+
if(has("dojo-combo-api") && isArray(targetModule)){
|
1704
|
+
injectDependencies(defineModule(getModule(targetModule.shift()), args[1], args[2]));
|
1705
|
+
if(!targetModule.length){
|
1706
|
+
combosPending.splice(i, 1);
|
1707
|
+
}
|
1708
|
+
}else if(targetModule){
|
1709
|
+
consumePendingCacheInsert(targetModule);
|
1710
|
+
injectDependencies(defineModule(targetModule, args[1], args[2]));
|
1711
|
+
}else{
|
1712
|
+
signal(error, makeError("ieDefineFailed", args[0]));
|
1713
|
+
}
|
1714
|
+
checkComplete();
|
1715
|
+
}
|
1716
|
+
};
|
1717
|
+
def.amd = {
|
1718
|
+
vendor:"dojotoolkit.org"
|
1719
|
+
};
|
1720
|
+
|
1721
|
+
if(has("dojo-requirejs-api")){
|
1722
|
+
req.def = def;
|
1723
|
+
}
|
1724
|
+
|
1725
|
+
// allow config to override default implemention of named functions; this is useful for
|
1726
|
+
// non-browser environments, e.g., overriding injectUrl, getText, log, etc. in node.js, Rhino, etc.
|
1727
|
+
// also useful for testing and monkey patching loader
|
1728
|
+
mix(mix(req, defaultConfig.loaderPatch), userConfig.loaderPatch);
|
1729
|
+
|
1730
|
+
// now that req is fully initialized and won't change, we can hook it up to the error signal
|
1731
|
+
on(error, function(arg){
|
1732
|
+
try{
|
1733
|
+
console.error(arg);
|
1734
|
+
if(arg instanceof Error){
|
1735
|
+
for(var p in arg){
|
1736
|
+
console.log(p + ":", arg[p]);
|
1737
|
+
}
|
1738
|
+
console.log(".");
|
1739
|
+
}
|
1740
|
+
}catch(e){}
|
1741
|
+
});
|
1742
|
+
|
1743
|
+
// always publish these
|
1744
|
+
mix(req, {
|
1745
|
+
uid:uid,
|
1746
|
+
cache:cache,
|
1747
|
+
packs:packs
|
1748
|
+
});
|
1749
|
+
|
1750
|
+
|
1751
|
+
if(has("dojo-publish-privates")){
|
1752
|
+
mix(req, {
|
1753
|
+
// these may be interesting to look at when debugging
|
1754
|
+
paths:paths,
|
1755
|
+
aliases:aliases,
|
1756
|
+
packageMap:packageMap,
|
1757
|
+
modules:modules,
|
1758
|
+
legacyMode:legacyMode,
|
1759
|
+
execQ:execQ,
|
1760
|
+
defQ:defQ,
|
1761
|
+
waiting:waiting,
|
1762
|
+
|
1763
|
+
// these are used for testing
|
1764
|
+
// TODO: move testing infrastructure to a different has feature
|
1765
|
+
pathsMapProg:pathsMapProg,
|
1766
|
+
packageMapProg:packageMapProg,
|
1767
|
+
listenerQueues:listenerQueues,
|
1768
|
+
|
1769
|
+
// these are used by the builder (at least)
|
1770
|
+
computeMapProg:computeMapProg,
|
1771
|
+
runMapProg:runMapProg,
|
1772
|
+
compactPath:compactPath,
|
1773
|
+
getModuleInfo:getModuleInfo_
|
1774
|
+
});
|
1775
|
+
}
|
1776
|
+
|
1777
|
+
// the loader can be defined exactly once; look for global define which is the symbol AMD loaders are
|
1778
|
+
// *required* to define (as opposed to require, which is optional)
|
1779
|
+
if(global.define){
|
1780
|
+
if(has("dojo-log-api")){
|
1781
|
+
signal(error, makeError("defineAlreadyDefined", 0));
|
1782
|
+
}
|
1783
|
+
}else{
|
1784
|
+
global.define = def;
|
1785
|
+
global.require = req;
|
1786
|
+
}
|
1787
|
+
|
1788
|
+
if(has("dojo-combo-api") && req.combo && req.combo.plugins){
|
1789
|
+
var plugins = req.combo.plugins,
|
1790
|
+
pluginName;
|
1791
|
+
for(pluginName in plugins){
|
1792
|
+
mix(mix(getModule(pluginName), plugins[pluginName]), {isCombo:1, executed:"executed", load:1});
|
1793
|
+
}
|
1794
|
+
}
|
1795
|
+
|
1796
|
+
if(has("dojo-config-api")){
|
1797
|
+
var bootDeps = dojoSniffConfig.deps || userConfig.deps || defaultConfig.deps,
|
1798
|
+
bootCallback = dojoSniffConfig.callback || userConfig.callback || defaultConfig.callback;
|
1799
|
+
req.boot = (bootDeps || bootCallback) ? [bootDeps || [], bootCallback] : 0;
|
1800
|
+
}
|
1801
|
+
if(!has("dojo-built")){
|
1802
|
+
!req.async && req(["dojo"]);
|
1803
|
+
req.boot && req.apply(null, req.boot);
|
1804
|
+
}
|
1805
|
+
})
|
1806
|
+
//>>excludeStart("replaceLoaderConfig", kwArgs.replaceLoaderConfig);
|
1807
|
+
(
|
1808
|
+
// userConfig
|
1809
|
+
(function(){
|
1810
|
+
// make sure we're looking at global dojoConfig etc.
|
1811
|
+
return this.dojoConfig || this.djConfig || this.require || {};
|
1812
|
+
})(),
|
1813
|
+
|
1814
|
+
// defaultConfig
|
1815
|
+
{
|
1816
|
+
// the default configuration for a browser; this will be modified by other environments
|
1817
|
+
hasCache:{
|
1818
|
+
"host-browser":1,
|
1819
|
+
"dom":1,
|
1820
|
+
"dojo-amd-factory-scan":1,
|
1821
|
+
"dojo-loader":1,
|
1822
|
+
"dojo-has-api":1,
|
1823
|
+
"dojo-inject-api":1,
|
1824
|
+
"dojo-timeout-api":1,
|
1825
|
+
"dojo-trace-api":1,
|
1826
|
+
"dojo-log-api":1,
|
1827
|
+
"dojo-dom-ready-api":1,
|
1828
|
+
"dojo-publish-privates":1,
|
1829
|
+
"dojo-config-api":1,
|
1830
|
+
"dojo-sniff":1,
|
1831
|
+
"dojo-sync-loader":1,
|
1832
|
+
"dojo-test-sniff":1,
|
1833
|
+
"config-tlmSiblingOfDojo":1
|
1834
|
+
},
|
1835
|
+
packages:[{
|
1836
|
+
// note: like v1.6-, this bootstrap computes baseUrl to be the dojo directory
|
1837
|
+
name:'dojo',
|
1838
|
+
location:'.'
|
1839
|
+
},{
|
1840
|
+
name:'tests',
|
1841
|
+
location:'./tests'
|
1842
|
+
},{
|
1843
|
+
name:'dijit',
|
1844
|
+
location:'../dijit'
|
1845
|
+
},{
|
1846
|
+
name:'build',
|
1847
|
+
location:'../util/build'
|
1848
|
+
},{
|
1849
|
+
name:'doh',
|
1850
|
+
location:'../util/doh'
|
1851
|
+
},{
|
1852
|
+
name:'dojox',
|
1853
|
+
location:'../dojox'
|
1854
|
+
},{
|
1855
|
+
name:'demos',
|
1856
|
+
location:'../demos'
|
1857
|
+
}],
|
1858
|
+
trace:{
|
1859
|
+
// these are listed so it's simple to turn them on/off while debugging loading
|
1860
|
+
"loader-inject":0,
|
1861
|
+
"loader-define":0,
|
1862
|
+
"loader-exec-module":0,
|
1863
|
+
"loader-run-factory":0,
|
1864
|
+
"loader-finish-exec":0,
|
1865
|
+
"loader-define-module":0,
|
1866
|
+
"loader-circular-dependency":0
|
1867
|
+
},
|
1868
|
+
async:0,
|
1869
|
+
waitSeconds:15
|
1870
|
+
}
|
1871
|
+
);
|
1872
|
+
//>>excludeEnd("replaceLoaderConfig")
|