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.
Files changed (611) hide show
  1. data/.gitignore +18 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/Rakefile +3 -0
  5. data/dojo-rails.gemspec +20 -0
  6. data/lib/dojo-rails.rb +1 -0
  7. data/lib/dojo/rails.rb +2 -0
  8. data/lib/dojo/rails/engine.rb +6 -0
  9. data/lib/dojo/rails/version.rb +9 -0
  10. data/lib/dojo/version.rb +7 -0
  11. data/vendor/assets/javascripts/dojo.js +15 -0
  12. data/vendor/assets/javascripts/dojo/AdapterRegistry.js +38 -0
  13. data/vendor/assets/javascripts/dojo/AdapterRegistry.js.uncompressed.js +113 -0
  14. data/vendor/assets/javascripts/dojo/DeferredList.js +57 -0
  15. data/vendor/assets/javascripts/dojo/DeferredList.js.uncompressed.js +86 -0
  16. data/vendor/assets/javascripts/dojo/Evented.js +23 -0
  17. data/vendor/assets/javascripts/dojo/Evented.js.uncompressed.js +32 -0
  18. data/vendor/assets/javascripts/dojo/LICENSE +195 -0
  19. data/vendor/assets/javascripts/dojo/NodeList-data.js +59 -0
  20. data/vendor/assets/javascripts/dojo/NodeList-data.js.uncompressed.js +181 -0
  21. data/vendor/assets/javascripts/dojo/NodeList-dom.js +122 -0
  22. data/vendor/assets/javascripts/dojo/NodeList-dom.js.uncompressed.js +454 -0
  23. data/vendor/assets/javascripts/dojo/NodeList-fx.js +39 -0
  24. data/vendor/assets/javascripts/dojo/NodeList-fx.js.uncompressed.js +222 -0
  25. data/vendor/assets/javascripts/dojo/NodeList-html.js +20 -0
  26. data/vendor/assets/javascripts/dojo/NodeList-html.js.uncompressed.js +55 -0
  27. data/vendor/assets/javascripts/dojo/NodeList-manipulate.js +210 -0
  28. data/vendor/assets/javascripts/dojo/NodeList-manipulate.js.uncompressed.js +730 -0
  29. data/vendor/assets/javascripts/dojo/NodeList-traverse.js +124 -0
  30. data/vendor/assets/javascripts/dojo/NodeList-traverse.js.uncompressed.js +508 -0
  31. data/vendor/assets/javascripts/dojo/OpenAjax.js +194 -0
  32. data/vendor/assets/javascripts/dojo/Stateful.js +67 -0
  33. data/vendor/assets/javascripts/dojo/Stateful.js.uncompressed.js +139 -0
  34. data/vendor/assets/javascripts/dojo/_base/Color.js +96 -0
  35. data/vendor/assets/javascripts/dojo/_base/Color.js.uncompressed.js +220 -0
  36. data/vendor/assets/javascripts/dojo/_base/Deferred.js +129 -0
  37. data/vendor/assets/javascripts/dojo/_base/Deferred.js.uncompressed.js +366 -0
  38. data/vendor/assets/javascripts/dojo/_base/NodeList.js +24 -0
  39. data/vendor/assets/javascripts/dojo/_base/NodeList.js.uncompressed.js +100 -0
  40. data/vendor/assets/javascripts/dojo/_base/array.js +142 -0
  41. data/vendor/assets/javascripts/dojo/_base/array.js.uncompressed.js +343 -0
  42. data/vendor/assets/javascripts/dojo/_base/browser.js +13 -0
  43. data/vendor/assets/javascripts/dojo/_base/browser.js.uncompressed.js +21 -0
  44. data/vendor/assets/javascripts/dojo/_base/config.js +26 -0
  45. data/vendor/assets/javascripts/dojo/_base/config.js.uncompressed.js +174 -0
  46. data/vendor/assets/javascripts/dojo/_base/configFirefoxExtension.js +334 -0
  47. data/vendor/assets/javascripts/dojo/_base/configNode.js +87 -0
  48. data/vendor/assets/javascripts/dojo/_base/configRhino.js +121 -0
  49. data/vendor/assets/javascripts/dojo/_base/configSpidermonkey.js +84 -0
  50. data/vendor/assets/javascripts/dojo/_base/connect.js +163 -0
  51. data/vendor/assets/javascripts/dojo/_base/connect.js.uncompressed.js +400 -0
  52. data/vendor/assets/javascripts/dojo/_base/declare.js +430 -0
  53. data/vendor/assets/javascripts/dojo/_base/declare.js.uncompressed.js +1050 -0
  54. data/vendor/assets/javascripts/dojo/_base/event.js +36 -0
  55. data/vendor/assets/javascripts/dojo/_base/event.js.uncompressed.js +51 -0
  56. data/vendor/assets/javascripts/dojo/_base/fx.js +295 -0
  57. data/vendor/assets/javascripts/dojo/_base/fx.js.uncompressed.js +666 -0
  58. data/vendor/assets/javascripts/dojo/_base/html.js +88 -0
  59. data/vendor/assets/javascripts/dojo/_base/html.js.uncompressed.js +389 -0
  60. data/vendor/assets/javascripts/dojo/_base/json.js +26 -0
  61. data/vendor/assets/javascripts/dojo/_base/json.js.uncompressed.js +85 -0
  62. data/vendor/assets/javascripts/dojo/_base/kernel.js +114 -0
  63. data/vendor/assets/javascripts/dojo/_base/kernel.js.uncompressed.js +302 -0
  64. data/vendor/assets/javascripts/dojo/_base/lang.js +178 -0
  65. data/vendor/assets/javascripts/dojo/_base/lang.js.uncompressed.js +707 -0
  66. data/vendor/assets/javascripts/dojo/_base/loader.js +258 -0
  67. data/vendor/assets/javascripts/dojo/_base/loader.js.uncompressed.js +718 -0
  68. data/vendor/assets/javascripts/dojo/_base/query.js +10 -0
  69. data/vendor/assets/javascripts/dojo/_base/query.js.uncompressed.js +3 -0
  70. data/vendor/assets/javascripts/dojo/_base/sniff.js +68 -0
  71. data/vendor/assets/javascripts/dojo/_base/sniff.js.uncompressed.js +187 -0
  72. data/vendor/assets/javascripts/dojo/_base/unload.js +21 -0
  73. data/vendor/assets/javascripts/dojo/_base/unload.js.uncompressed.js +81 -0
  74. data/vendor/assets/javascripts/dojo/_base/url.js +88 -0
  75. data/vendor/assets/javascripts/dojo/_base/url.js.uncompressed.js +111 -0
  76. data/vendor/assets/javascripts/dojo/_base/window.js +55 -0
  77. data/vendor/assets/javascripts/dojo/_base/window.js.uncompressed.js +126 -0
  78. data/vendor/assets/javascripts/dojo/_base/xhr.js +381 -0
  79. data/vendor/assets/javascripts/dojo/_base/xhr.js.uncompressed.js +830 -0
  80. data/vendor/assets/javascripts/dojo/_firebug/LICENSE +37 -0
  81. data/vendor/assets/javascripts/dojo/_firebug/errorIcon.png +0 -0
  82. data/vendor/assets/javascripts/dojo/_firebug/firebug.css +208 -0
  83. data/vendor/assets/javascripts/dojo/_firebug/firebug.js +897 -0
  84. data/vendor/assets/javascripts/dojo/_firebug/firebug.js.uncompressed.js +1183 -0
  85. data/vendor/assets/javascripts/dojo/_firebug/infoIcon.png +0 -0
  86. data/vendor/assets/javascripts/dojo/_firebug/tab_lft_norm.png +0 -0
  87. data/vendor/assets/javascripts/dojo/_firebug/tab_lft_over.png +0 -0
  88. data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_norm.png +0 -0
  89. data/vendor/assets/javascripts/dojo/_firebug/tab_rgt_over.png +0 -0
  90. data/vendor/assets/javascripts/dojo/_firebug/warningIcon.png +0 -0
  91. data/vendor/assets/javascripts/dojo/aspect.js +98 -0
  92. data/vendor/assets/javascripts/dojo/aspect.js.uncompressed.js +207 -0
  93. data/vendor/assets/javascripts/dojo/back.js +238 -0
  94. data/vendor/assets/javascripts/dojo/back.js.uncompressed.js +397 -0
  95. data/vendor/assets/javascripts/dojo/behavior.js +92 -0
  96. data/vendor/assets/javascripts/dojo/behavior.js.uncompressed.js +248 -0
  97. data/vendor/assets/javascripts/dojo/cache.js +10 -0
  98. data/vendor/assets/javascripts/dojo/cache.js.uncompressed.js +9 -0
  99. data/vendor/assets/javascripts/dojo/cldr/LICENSE +29 -0
  100. data/vendor/assets/javascripts/dojo/cldr/README +18 -0
  101. data/vendor/assets/javascripts/dojo/cldr/monetary.js +23 -0
  102. data/vendor/assets/javascripts/dojo/cldr/monetary.js.uncompressed.js +35 -0
  103. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js +8 -0
  104. data/vendor/assets/javascripts/dojo/cldr/nls/ar/buddhist.js.uncompressed.js +115 -0
  105. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js +8 -0
  106. data/vendor/assets/javascripts/dojo/cldr/nls/ar/currency.js.uncompressed.js +16 -0
  107. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js +8 -0
  108. data/vendor/assets/javascripts/dojo/cldr/nls/ar/gregorian.js.uncompressed.js +240 -0
  109. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js +8 -0
  110. data/vendor/assets/javascripts/dojo/cldr/nls/ar/hebrew.js.uncompressed.js +124 -0
  111. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js +8 -0
  112. data/vendor/assets/javascripts/dojo/cldr/nls/ar/islamic.js.uncompressed.js +156 -0
  113. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js +8 -0
  114. data/vendor/assets/javascripts/dojo/cldr/nls/ar/number.js.uncompressed.js +18 -0
  115. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js +8 -0
  116. data/vendor/assets/javascripts/dojo/cldr/nls/buddhist.js.uncompressed.js +267 -0
  117. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js +8 -0
  118. data/vendor/assets/javascripts/dojo/cldr/nls/ca/currency.js.uncompressed.js +15 -0
  119. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js +8 -0
  120. data/vendor/assets/javascripts/dojo/cldr/nls/ca/gregorian.js.uncompressed.js +235 -0
  121. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js +8 -0
  122. data/vendor/assets/javascripts/dojo/cldr/nls/ca/number.js.uncompressed.js +22 -0
  123. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js +8 -0
  124. data/vendor/assets/javascripts/dojo/cldr/nls/cs/currency.js.uncompressed.js +15 -0
  125. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js +8 -0
  126. data/vendor/assets/javascripts/dojo/cldr/nls/cs/gregorian.js.uncompressed.js +215 -0
  127. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js +8 -0
  128. data/vendor/assets/javascripts/dojo/cldr/nls/cs/number.js.uncompressed.js +22 -0
  129. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js +8 -0
  130. data/vendor/assets/javascripts/dojo/cldr/nls/currency.js.uncompressed.js +48 -0
  131. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js +8 -0
  132. data/vendor/assets/javascripts/dojo/cldr/nls/da/buddhist.js.uncompressed.js +141 -0
  133. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js +8 -0
  134. data/vendor/assets/javascripts/dojo/cldr/nls/da/currency.js.uncompressed.js +16 -0
  135. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js +8 -0
  136. data/vendor/assets/javascripts/dojo/cldr/nls/da/gregorian.js.uncompressed.js +237 -0
  137. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js +8 -0
  138. data/vendor/assets/javascripts/dojo/cldr/nls/da/islamic.js.uncompressed.js +87 -0
  139. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js +8 -0
  140. data/vendor/assets/javascripts/dojo/cldr/nls/da/number.js.uncompressed.js +22 -0
  141. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js +8 -0
  142. data/vendor/assets/javascripts/dojo/cldr/nls/de/buddhist.js.uncompressed.js +130 -0
  143. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js +8 -0
  144. data/vendor/assets/javascripts/dojo/cldr/nls/de/currency.js.uncompressed.js +17 -0
  145. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js +8 -0
  146. data/vendor/assets/javascripts/dojo/cldr/nls/de/gregorian.js.uncompressed.js +237 -0
  147. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js +8 -0
  148. data/vendor/assets/javascripts/dojo/cldr/nls/de/islamic.js.uncompressed.js +172 -0
  149. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js +8 -0
  150. data/vendor/assets/javascripts/dojo/cldr/nls/de/number.js.uncompressed.js +22 -0
  151. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js +8 -0
  152. data/vendor/assets/javascripts/dojo/cldr/nls/el/buddhist.js.uncompressed.js +120 -0
  153. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js +8 -0
  154. data/vendor/assets/javascripts/dojo/cldr/nls/el/currency.js.uncompressed.js +15 -0
  155. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js +8 -0
  156. data/vendor/assets/javascripts/dojo/cldr/nls/el/gregorian.js.uncompressed.js +241 -0
  157. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js +8 -0
  158. data/vendor/assets/javascripts/dojo/cldr/nls/el/hebrew.js.uncompressed.js +73 -0
  159. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js +8 -0
  160. data/vendor/assets/javascripts/dojo/cldr/nls/el/number.js.uncompressed.js +20 -0
  161. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js +8 -0
  162. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/currency.js.uncompressed.js +8 -0
  163. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js +8 -0
  164. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/gregorian.js.uncompressed.js +17 -0
  165. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js +8 -0
  166. data/vendor/assets/javascripts/dojo/cldr/nls/en-au/number.js.uncompressed.js +7 -0
  167. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js +8 -0
  168. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/currency.js.uncompressed.js +8 -0
  169. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js +8 -0
  170. data/vendor/assets/javascripts/dojo/cldr/nls/en-ca/gregorian.js.uncompressed.js +20 -0
  171. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js +8 -0
  172. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/buddhist.js.uncompressed.js +101 -0
  173. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js +8 -0
  174. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/gregorian.js.uncompressed.js +23 -0
  175. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js +8 -0
  176. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/islamic.js.uncompressed.js +153 -0
  177. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js +8 -0
  178. data/vendor/assets/javascripts/dojo/cldr/nls/en-gb/number.js.uncompressed.js +7 -0
  179. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js +8 -0
  180. data/vendor/assets/javascripts/dojo/cldr/nls/en/buddhist.js.uncompressed.js +109 -0
  181. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js +8 -0
  182. data/vendor/assets/javascripts/dojo/cldr/nls/en/currency.js.uncompressed.js +17 -0
  183. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js +8 -0
  184. data/vendor/assets/javascripts/dojo/cldr/nls/en/gregorian.js.uncompressed.js +229 -0
  185. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js +8 -0
  186. data/vendor/assets/javascripts/dojo/cldr/nls/en/islamic.js.uncompressed.js +166 -0
  187. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js +8 -0
  188. data/vendor/assets/javascripts/dojo/cldr/nls/en/number.js.uncompressed.js +23 -0
  189. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js +8 -0
  190. data/vendor/assets/javascripts/dojo/cldr/nls/es/buddhist.js.uncompressed.js +125 -0
  191. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js +8 -0
  192. data/vendor/assets/javascripts/dojo/cldr/nls/es/currency.js.uncompressed.js +15 -0
  193. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js +8 -0
  194. data/vendor/assets/javascripts/dojo/cldr/nls/es/gregorian.js.uncompressed.js +238 -0
  195. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js +8 -0
  196. data/vendor/assets/javascripts/dojo/cldr/nls/es/islamic.js.uncompressed.js +179 -0
  197. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js +8 -0
  198. data/vendor/assets/javascripts/dojo/cldr/nls/es/number.js.uncompressed.js +21 -0
  199. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js +8 -0
  200. data/vendor/assets/javascripts/dojo/cldr/nls/fi/buddhist.js.uncompressed.js +166 -0
  201. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js +8 -0
  202. data/vendor/assets/javascripts/dojo/cldr/nls/fi/currency.js.uncompressed.js +22 -0
  203. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js +8 -0
  204. data/vendor/assets/javascripts/dojo/cldr/nls/fi/gregorian.js.uncompressed.js +239 -0
  205. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js +8 -0
  206. data/vendor/assets/javascripts/dojo/cldr/nls/fi/hebrew.js.uncompressed.js +176 -0
  207. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js +8 -0
  208. data/vendor/assets/javascripts/dojo/cldr/nls/fi/islamic.js.uncompressed.js +155 -0
  209. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js +8 -0
  210. data/vendor/assets/javascripts/dojo/cldr/nls/fi/number.js.uncompressed.js +22 -0
  211. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js +8 -0
  212. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/gregorian.js.uncompressed.js +9 -0
  213. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js +8 -0
  214. data/vendor/assets/javascripts/dojo/cldr/nls/fr-ch/number.js.uncompressed.js +9 -0
  215. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js +8 -0
  216. data/vendor/assets/javascripts/dojo/cldr/nls/fr/currency.js.uncompressed.js +23 -0
  217. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js +8 -0
  218. data/vendor/assets/javascripts/dojo/cldr/nls/fr/gregorian.js.uncompressed.js +247 -0
  219. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js +8 -0
  220. data/vendor/assets/javascripts/dojo/cldr/nls/fr/number.js.uncompressed.js +22 -0
  221. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js +8 -0
  222. data/vendor/assets/javascripts/dojo/cldr/nls/gregorian.js.uncompressed.js +294 -0
  223. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js +8 -0
  224. data/vendor/assets/javascripts/dojo/cldr/nls/he/currency.js.uncompressed.js +15 -0
  225. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js +8 -0
  226. data/vendor/assets/javascripts/dojo/cldr/nls/he/gregorian.js.uncompressed.js +213 -0
  227. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js +8 -0
  228. data/vendor/assets/javascripts/dojo/cldr/nls/he/hebrew.js.uncompressed.js +125 -0
  229. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js +8 -0
  230. data/vendor/assets/javascripts/dojo/cldr/nls/he/islamic.js.uncompressed.js +119 -0
  231. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js +8 -0
  232. data/vendor/assets/javascripts/dojo/cldr/nls/he/number.js.uncompressed.js +22 -0
  233. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js +8 -0
  234. data/vendor/assets/javascripts/dojo/cldr/nls/hebrew.js.uncompressed.js +265 -0
  235. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js +8 -0
  236. data/vendor/assets/javascripts/dojo/cldr/nls/hu/currency.js.uncompressed.js +17 -0
  237. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js +8 -0
  238. data/vendor/assets/javascripts/dojo/cldr/nls/hu/gregorian.js.uncompressed.js +227 -0
  239. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js +8 -0
  240. data/vendor/assets/javascripts/dojo/cldr/nls/hu/number.js.uncompressed.js +21 -0
  241. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js +8 -0
  242. data/vendor/assets/javascripts/dojo/cldr/nls/islamic.js.uncompressed.js +264 -0
  243. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js +8 -0
  244. data/vendor/assets/javascripts/dojo/cldr/nls/it/currency.js.uncompressed.js +15 -0
  245. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js +8 -0
  246. data/vendor/assets/javascripts/dojo/cldr/nls/it/gregorian.js.uncompressed.js +235 -0
  247. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js +8 -0
  248. data/vendor/assets/javascripts/dojo/cldr/nls/it/number.js.uncompressed.js +12 -0
  249. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js +8 -0
  250. data/vendor/assets/javascripts/dojo/cldr/nls/ja/currency.js.uncompressed.js +18 -0
  251. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js +8 -0
  252. data/vendor/assets/javascripts/dojo/cldr/nls/ja/gregorian.js.uncompressed.js +222 -0
  253. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js +8 -0
  254. data/vendor/assets/javascripts/dojo/cldr/nls/ja/number.js.uncompressed.js +12 -0
  255. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js +8 -0
  256. data/vendor/assets/javascripts/dojo/cldr/nls/ko/currency.js.uncompressed.js +15 -0
  257. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js +8 -0
  258. data/vendor/assets/javascripts/dojo/cldr/nls/ko/gregorian.js.uncompressed.js +243 -0
  259. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js +8 -0
  260. data/vendor/assets/javascripts/dojo/cldr/nls/ko/number.js.uncompressed.js +22 -0
  261. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js +8 -0
  262. data/vendor/assets/javascripts/dojo/cldr/nls/nb/currency.js.uncompressed.js +23 -0
  263. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js +8 -0
  264. data/vendor/assets/javascripts/dojo/cldr/nls/nb/gregorian.js.uncompressed.js +234 -0
  265. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js +8 -0
  266. data/vendor/assets/javascripts/dojo/cldr/nls/nb/number.js.uncompressed.js +22 -0
  267. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js +8 -0
  268. data/vendor/assets/javascripts/dojo/cldr/nls/nl/currency.js.uncompressed.js +15 -0
  269. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js +8 -0
  270. data/vendor/assets/javascripts/dojo/cldr/nls/nl/gregorian.js.uncompressed.js +233 -0
  271. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js +8 -0
  272. data/vendor/assets/javascripts/dojo/cldr/nls/nl/number.js.uncompressed.js +22 -0
  273. data/vendor/assets/javascripts/dojo/cldr/nls/number.js +8 -0
  274. data/vendor/assets/javascripts/dojo/cldr/nls/number.js.uncompressed.js +64 -0
  275. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js +8 -0
  276. data/vendor/assets/javascripts/dojo/cldr/nls/pl/currency.js.uncompressed.js +15 -0
  277. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js +8 -0
  278. data/vendor/assets/javascripts/dojo/cldr/nls/pl/gregorian.js.uncompressed.js +242 -0
  279. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js +8 -0
  280. data/vendor/assets/javascripts/dojo/cldr/nls/pl/number.js.uncompressed.js +22 -0
  281. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js +8 -0
  282. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/gregorian.js.uncompressed.js +141 -0
  283. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js +8 -0
  284. data/vendor/assets/javascripts/dojo/cldr/nls/pt-pt/number.js.uncompressed.js +8 -0
  285. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js +8 -0
  286. data/vendor/assets/javascripts/dojo/cldr/nls/pt/currency.js.uncompressed.js +15 -0
  287. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js +8 -0
  288. data/vendor/assets/javascripts/dojo/cldr/nls/pt/gregorian.js.uncompressed.js +237 -0
  289. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js +8 -0
  290. data/vendor/assets/javascripts/dojo/cldr/nls/pt/number.js.uncompressed.js +22 -0
  291. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js +8 -0
  292. data/vendor/assets/javascripts/dojo/cldr/nls/ro/buddhist.js.uncompressed.js +121 -0
  293. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js +8 -0
  294. data/vendor/assets/javascripts/dojo/cldr/nls/ro/currency.js.uncompressed.js +15 -0
  295. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js +8 -0
  296. data/vendor/assets/javascripts/dojo/cldr/nls/ro/gregorian.js.uncompressed.js +251 -0
  297. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js +8 -0
  298. data/vendor/assets/javascripts/dojo/cldr/nls/ro/number.js.uncompressed.js +22 -0
  299. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js +8 -0
  300. data/vendor/assets/javascripts/dojo/cldr/nls/ru/currency.js.uncompressed.js +16 -0
  301. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js +8 -0
  302. data/vendor/assets/javascripts/dojo/cldr/nls/ru/gregorian.js.uncompressed.js +232 -0
  303. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js +8 -0
  304. data/vendor/assets/javascripts/dojo/cldr/nls/ru/number.js.uncompressed.js +21 -0
  305. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js +8 -0
  306. data/vendor/assets/javascripts/dojo/cldr/nls/sk/currency.js.uncompressed.js +15 -0
  307. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js +8 -0
  308. data/vendor/assets/javascripts/dojo/cldr/nls/sk/gregorian.js.uncompressed.js +225 -0
  309. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js +8 -0
  310. data/vendor/assets/javascripts/dojo/cldr/nls/sk/number.js.uncompressed.js +9 -0
  311. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js +8 -0
  312. data/vendor/assets/javascripts/dojo/cldr/nls/sl/currency.js.uncompressed.js +17 -0
  313. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js +8 -0
  314. data/vendor/assets/javascripts/dojo/cldr/nls/sl/gregorian.js.uncompressed.js +218 -0
  315. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js +8 -0
  316. data/vendor/assets/javascripts/dojo/cldr/nls/sl/number.js.uncompressed.js +22 -0
  317. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js +8 -0
  318. data/vendor/assets/javascripts/dojo/cldr/nls/sv/currency.js.uncompressed.js +18 -0
  319. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js +8 -0
  320. data/vendor/assets/javascripts/dojo/cldr/nls/sv/gregorian.js.uncompressed.js +245 -0
  321. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js +8 -0
  322. data/vendor/assets/javascripts/dojo/cldr/nls/sv/number.js.uncompressed.js +22 -0
  323. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js +8 -0
  324. data/vendor/assets/javascripts/dojo/cldr/nls/th/buddhist.js.uncompressed.js +118 -0
  325. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js +8 -0
  326. data/vendor/assets/javascripts/dojo/cldr/nls/th/currency.js.uncompressed.js +16 -0
  327. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js +8 -0
  328. data/vendor/assets/javascripts/dojo/cldr/nls/th/gregorian.js.uncompressed.js +232 -0
  329. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js +8 -0
  330. data/vendor/assets/javascripts/dojo/cldr/nls/th/number.js.uncompressed.js +22 -0
  331. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js +8 -0
  332. data/vendor/assets/javascripts/dojo/cldr/nls/tr/currency.js.uncompressed.js +17 -0
  333. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js +8 -0
  334. data/vendor/assets/javascripts/dojo/cldr/nls/tr/gregorian.js.uncompressed.js +239 -0
  335. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js +8 -0
  336. data/vendor/assets/javascripts/dojo/cldr/nls/tr/number.js.uncompressed.js +22 -0
  337. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js +8 -0
  338. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/buddhist.js.uncompressed.js +146 -0
  339. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js +8 -0
  340. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/currency.js.uncompressed.js +16 -0
  341. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js +8 -0
  342. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/gregorian.js.uncompressed.js +228 -0
  343. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js +8 -0
  344. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/islamic.js.uncompressed.js +87 -0
  345. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js +8 -0
  346. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hant/number.js.uncompressed.js +7 -0
  347. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js +8 -0
  348. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/currency.js.uncompressed.js +15 -0
  349. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js +8 -0
  350. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/gregorian.js.uncompressed.js +85 -0
  351. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js +8 -0
  352. data/vendor/assets/javascripts/dojo/cldr/nls/zh-hk/number.js.uncompressed.js +7 -0
  353. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js +8 -0
  354. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/currency.js.uncompressed.js +14 -0
  355. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js +8 -0
  356. data/vendor/assets/javascripts/dojo/cldr/nls/zh-tw/gregorian.js.uncompressed.js +80 -0
  357. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js +8 -0
  358. data/vendor/assets/javascripts/dojo/cldr/nls/zh/currency.js.uncompressed.js +16 -0
  359. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js +8 -0
  360. data/vendor/assets/javascripts/dojo/cldr/nls/zh/gregorian.js.uncompressed.js +247 -0
  361. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js +8 -0
  362. data/vendor/assets/javascripts/dojo/cldr/nls/zh/number.js.uncompressed.js +12 -0
  363. data/vendor/assets/javascripts/dojo/cldr/supplemental.js +44 -0
  364. data/vendor/assets/javascripts/dojo/cldr/supplemental.js.uncompressed.js +77 -0
  365. data/vendor/assets/javascripts/dojo/colors.js +74 -0
  366. data/vendor/assets/javascripts/dojo/colors.js.uncompressed.js +232 -0
  367. data/vendor/assets/javascripts/dojo/cookie.js +49 -0
  368. data/vendor/assets/javascripts/dojo/cookie.js.uncompressed.js +98 -0
  369. data/vendor/assets/javascripts/dojo/currency.js +32 -0
  370. data/vendor/assets/javascripts/dojo/currency.js.uncompressed.js +132 -0
  371. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js +561 -0
  372. data/vendor/assets/javascripts/dojo/data/ItemFileReadStore.js.uncompressed.js +945 -0
  373. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js +499 -0
  374. data/vendor/assets/javascripts/dojo/data/ItemFileWriteStore.js.uncompressed.js +805 -0
  375. data/vendor/assets/javascripts/dojo/data/ObjectStore.js +285 -0
  376. data/vendor/assets/javascripts/dojo/data/ObjectStore.js.uncompressed.js +505 -0
  377. data/vendor/assets/javascripts/dojo/data/api/Identity.js +21 -0
  378. data/vendor/assets/javascripts/dojo/data/api/Identity.js.uncompressed.js +107 -0
  379. data/vendor/assets/javascripts/dojo/data/api/Notification.js +19 -0
  380. data/vendor/assets/javascripts/dojo/data/api/Notification.js.uncompressed.js +122 -0
  381. data/vendor/assets/javascripts/dojo/data/api/Read.js +39 -0
  382. data/vendor/assets/javascripts/dojo/data/api/Read.js.uncompressed.js +485 -0
  383. data/vendor/assets/javascripts/dojo/data/api/Request.js +13 -0
  384. data/vendor/assets/javascripts/dojo/data/api/Request.js.uncompressed.js +36 -0
  385. data/vendor/assets/javascripts/dojo/data/api/Write.js +29 -0
  386. data/vendor/assets/javascripts/dojo/data/api/Write.js.uncompressed.js +221 -0
  387. data/vendor/assets/javascripts/dojo/data/util/filter.js +52 -0
  388. data/vendor/assets/javascripts/dojo/data/util/filter.js.uncompressed.js +74 -0
  389. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js +63 -0
  390. data/vendor/assets/javascripts/dojo/data/util/simpleFetch.js.uncompressed.js +95 -0
  391. data/vendor/assets/javascripts/dojo/data/util/sorter.js +66 -0
  392. data/vendor/assets/javascripts/dojo/data/util/sorter.js.uncompressed.js +99 -0
  393. data/vendor/assets/javascripts/dojo/date.js +213 -0
  394. data/vendor/assets/javascripts/dojo/date.js.uncompressed.js +347 -0
  395. data/vendor/assets/javascripts/dojo/date/locale.js +452 -0
  396. data/vendor/assets/javascripts/dojo/date/locale.js.uncompressed.js +670 -0
  397. data/vendor/assets/javascripts/dojo/date/stamp.js +82 -0
  398. data/vendor/assets/javascripts/dojo/date/stamp.js.uncompressed.js +146 -0
  399. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js +12 -0
  400. data/vendor/assets/javascripts/dojo/dnd/AutoSource.js.uncompressed.js +13 -0
  401. data/vendor/assets/javascripts/dojo/dnd/Avatar.js +62 -0
  402. data/vendor/assets/javascripts/dojo/dnd/Avatar.js.uncompressed.js +111 -0
  403. data/vendor/assets/javascripts/dojo/dnd/Container.js +231 -0
  404. data/vendor/assets/javascripts/dojo/dnd/Container.js.uncompressed.js +432 -0
  405. data/vendor/assets/javascripts/dojo/dnd/Manager.js +122 -0
  406. data/vendor/assets/javascripts/dojo/dnd/Manager.js.uncompressed.js +213 -0
  407. data/vendor/assets/javascripts/dojo/dnd/Moveable.js +75 -0
  408. data/vendor/assets/javascripts/dojo/dnd/Moveable.js.uncompressed.js +173 -0
  409. data/vendor/assets/javascripts/dojo/dnd/Mover.js +62 -0
  410. data/vendor/assets/javascripts/dojo/dnd/Mover.js.uncompressed.js +119 -0
  411. data/vendor/assets/javascripts/dojo/dnd/Selector.js +233 -0
  412. data/vendor/assets/javascripts/dojo/dnd/Selector.js.uncompressed.js +324 -0
  413. data/vendor/assets/javascripts/dojo/dnd/Source.js +284 -0
  414. data/vendor/assets/javascripts/dojo/dnd/Source.js.uncompressed.js +513 -0
  415. data/vendor/assets/javascripts/dojo/dnd/Target.js +13 -0
  416. data/vendor/assets/javascripts/dojo/dnd/Target.js.uncompressed.js +13 -0
  417. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js +34 -0
  418. data/vendor/assets/javascripts/dojo/dnd/TimedMoveable.js.uncompressed.js +69 -0
  419. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js +96 -0
  420. data/vendor/assets/javascripts/dojo/dnd/autoscroll.js.uncompressed.js +118 -0
  421. data/vendor/assets/javascripts/dojo/dnd/common.js +28 -0
  422. data/vendor/assets/javascripts/dojo/dnd/common.js.uncompressed.js +35 -0
  423. data/vendor/assets/javascripts/dojo/dnd/move.js +66 -0
  424. data/vendor/assets/javascripts/dojo/dnd/move.js.uncompressed.js +143 -0
  425. data/vendor/assets/javascripts/dojo/dojo.js +1872 -0
  426. data/vendor/assets/javascripts/dojo/dojo.js.uncompressed.js +16408 -0
  427. data/vendor/assets/javascripts/dojo/dojo.profile.js +40 -0
  428. data/vendor/assets/javascripts/dojo/dom-attr.js +62 -0
  429. data/vendor/assets/javascripts/dojo/dom-attr.js.uncompressed.js +238 -0
  430. data/vendor/assets/javascripts/dojo/dom-class.js +89 -0
  431. data/vendor/assets/javascripts/dojo/dom-class.js.uncompressed.js +320 -0
  432. data/vendor/assets/javascripts/dojo/dom-construct.js +141 -0
  433. data/vendor/assets/javascripts/dojo/dom-construct.js.uncompressed.js +376 -0
  434. data/vendor/assets/javascripts/dojo/dom-form.js +81 -0
  435. data/vendor/assets/javascripts/dojo/dom-form.js.uncompressed.js +166 -0
  436. data/vendor/assets/javascripts/dojo/dom-geometry.js +214 -0
  437. data/vendor/assets/javascripts/dojo/dom-geometry.js.uncompressed.js +751 -0
  438. data/vendor/assets/javascripts/dojo/dom-prop.js +69 -0
  439. data/vendor/assets/javascripts/dojo/dom-prop.js.uncompressed.js +190 -0
  440. data/vendor/assets/javascripts/dojo/dom-style.js +158 -0
  441. data/vendor/assets/javascripts/dojo/dom-style.js.uncompressed.js +321 -0
  442. data/vendor/assets/javascripts/dojo/dom.js +74 -0
  443. data/vendor/assets/javascripts/dojo/dom.js.uncompressed.js +156 -0
  444. data/vendor/assets/javascripts/dojo/domReady.js +95 -0
  445. data/vendor/assets/javascripts/dojo/domReady.js.uncompressed.js +95 -0
  446. data/vendor/assets/javascripts/dojo/fx.js +260 -0
  447. data/vendor/assets/javascripts/dojo/fx.js.uncompressed.js +426 -0
  448. data/vendor/assets/javascripts/dojo/fx/Toggler.js +28 -0
  449. data/vendor/assets/javascripts/dojo/fx/Toggler.js.uncompressed.js +103 -0
  450. data/vendor/assets/javascripts/dojo/fx/easing.js +166 -0
  451. data/vendor/assets/javascripts/dojo/fx/easing.js.uncompressed.js +284 -0
  452. data/vendor/assets/javascripts/dojo/gears.js +44 -0
  453. data/vendor/assets/javascripts/dojo/gears.js.uncompressed.js +61 -0
  454. data/vendor/assets/javascripts/dojo/has.js +66 -0
  455. data/vendor/assets/javascripts/dojo/has.js.uncompressed.js +178 -0
  456. data/vendor/assets/javascripts/dojo/hash.js +137 -0
  457. data/vendor/assets/javascripts/dojo/hash.js.uncompressed.js +243 -0
  458. data/vendor/assets/javascripts/dojo/html.js +148 -0
  459. data/vendor/assets/javascripts/dojo/html.js.uncompressed.js +342 -0
  460. data/vendor/assets/javascripts/dojo/i18n.js +211 -0
  461. data/vendor/assets/javascripts/dojo/i18n.js.uncompressed.js +514 -0
  462. data/vendor/assets/javascripts/dojo/io-query.js +53 -0
  463. data/vendor/assets/javascripts/dojo/io-query.js.uncompressed.js +98 -0
  464. data/vendor/assets/javascripts/dojo/io/iframe.js +230 -0
  465. data/vendor/assets/javascripts/dojo/io/iframe.js.uncompressed.js +376 -0
  466. data/vendor/assets/javascripts/dojo/io/script.js +114 -0
  467. data/vendor/assets/javascripts/dojo/io/script.js.uncompressed.js +256 -0
  468. data/vendor/assets/javascripts/dojo/jaxer.js +18 -0
  469. data/vendor/assets/javascripts/dojo/jaxer.js.uncompressed.js +19 -0
  470. data/vendor/assets/javascripts/dojo/json.js +102 -0
  471. data/vendor/assets/javascripts/dojo/json.js.uncompressed.js +149 -0
  472. data/vendor/assets/javascripts/dojo/keys.js +10 -0
  473. data/vendor/assets/javascripts/dojo/keys.js.uncompressed.js +80 -0
  474. data/vendor/assets/javascripts/dojo/loadInit.js +12 -0
  475. data/vendor/assets/javascripts/dojo/loadInit.js.uncompressed.js +7 -0
  476. data/vendor/assets/javascripts/dojo/main.js +29 -0
  477. data/vendor/assets/javascripts/dojo/main.js.uncompressed.js +50 -0
  478. data/vendor/assets/javascripts/dojo/mouse.js +48 -0
  479. data/vendor/assets/javascripts/dojo/mouse.js.uncompressed.js +127 -0
  480. data/vendor/assets/javascripts/dojo/nls/ar/colors.js +8 -0
  481. data/vendor/assets/javascripts/dojo/nls/ar/colors.js.uncompressed.js +156 -0
  482. data/vendor/assets/javascripts/dojo/nls/az/colors.js +8 -0
  483. data/vendor/assets/javascripts/dojo/nls/az/colors.js.uncompressed.js +153 -0
  484. data/vendor/assets/javascripts/dojo/nls/ca/colors.js +8 -0
  485. data/vendor/assets/javascripts/dojo/nls/ca/colors.js.uncompressed.js +156 -0
  486. data/vendor/assets/javascripts/dojo/nls/colors.js +8 -0
  487. data/vendor/assets/javascripts/dojo/nls/colors.js.uncompressed.js +191 -0
  488. data/vendor/assets/javascripts/dojo/nls/cs/colors.js +8 -0
  489. data/vendor/assets/javascripts/dojo/nls/cs/colors.js.uncompressed.js +156 -0
  490. data/vendor/assets/javascripts/dojo/nls/da/colors.js +8 -0
  491. data/vendor/assets/javascripts/dojo/nls/da/colors.js.uncompressed.js +156 -0
  492. data/vendor/assets/javascripts/dojo/nls/de/colors.js +8 -0
  493. data/vendor/assets/javascripts/dojo/nls/de/colors.js.uncompressed.js +156 -0
  494. data/vendor/assets/javascripts/dojo/nls/el/colors.js +8 -0
  495. data/vendor/assets/javascripts/dojo/nls/el/colors.js.uncompressed.js +156 -0
  496. data/vendor/assets/javascripts/dojo/nls/es/colors.js +8 -0
  497. data/vendor/assets/javascripts/dojo/nls/es/colors.js.uncompressed.js +156 -0
  498. data/vendor/assets/javascripts/dojo/nls/fi/colors.js +8 -0
  499. data/vendor/assets/javascripts/dojo/nls/fi/colors.js.uncompressed.js +156 -0
  500. data/vendor/assets/javascripts/dojo/nls/fr/colors.js +8 -0
  501. data/vendor/assets/javascripts/dojo/nls/fr/colors.js.uncompressed.js +156 -0
  502. data/vendor/assets/javascripts/dojo/nls/he/colors.js +8 -0
  503. data/vendor/assets/javascripts/dojo/nls/he/colors.js.uncompressed.js +158 -0
  504. data/vendor/assets/javascripts/dojo/nls/hr/colors.js +8 -0
  505. data/vendor/assets/javascripts/dojo/nls/hr/colors.js.uncompressed.js +156 -0
  506. data/vendor/assets/javascripts/dojo/nls/hu/colors.js +8 -0
  507. data/vendor/assets/javascripts/dojo/nls/hu/colors.js.uncompressed.js +156 -0
  508. data/vendor/assets/javascripts/dojo/nls/it/colors.js +8 -0
  509. data/vendor/assets/javascripts/dojo/nls/it/colors.js.uncompressed.js +156 -0
  510. data/vendor/assets/javascripts/dojo/nls/ja/colors.js +8 -0
  511. data/vendor/assets/javascripts/dojo/nls/ja/colors.js.uncompressed.js +156 -0
  512. data/vendor/assets/javascripts/dojo/nls/kk/colors.js +8 -0
  513. data/vendor/assets/javascripts/dojo/nls/kk/colors.js.uncompressed.js +156 -0
  514. data/vendor/assets/javascripts/dojo/nls/ko/colors.js +8 -0
  515. data/vendor/assets/javascripts/dojo/nls/ko/colors.js.uncompressed.js +156 -0
  516. data/vendor/assets/javascripts/dojo/nls/nb/colors.js +8 -0
  517. data/vendor/assets/javascripts/dojo/nls/nb/colors.js.uncompressed.js +156 -0
  518. data/vendor/assets/javascripts/dojo/nls/nl/colors.js +8 -0
  519. data/vendor/assets/javascripts/dojo/nls/nl/colors.js.uncompressed.js +156 -0
  520. data/vendor/assets/javascripts/dojo/nls/pl/colors.js +8 -0
  521. data/vendor/assets/javascripts/dojo/nls/pl/colors.js.uncompressed.js +156 -0
  522. data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js +8 -0
  523. data/vendor/assets/javascripts/dojo/nls/pt-pt/colors.js.uncompressed.js +156 -0
  524. data/vendor/assets/javascripts/dojo/nls/pt/colors.js +8 -0
  525. data/vendor/assets/javascripts/dojo/nls/pt/colors.js.uncompressed.js +156 -0
  526. data/vendor/assets/javascripts/dojo/nls/ro/colors.js +8 -0
  527. data/vendor/assets/javascripts/dojo/nls/ro/colors.js.uncompressed.js +156 -0
  528. data/vendor/assets/javascripts/dojo/nls/ru/colors.js +8 -0
  529. data/vendor/assets/javascripts/dojo/nls/ru/colors.js.uncompressed.js +156 -0
  530. data/vendor/assets/javascripts/dojo/nls/sk/colors.js +8 -0
  531. data/vendor/assets/javascripts/dojo/nls/sk/colors.js.uncompressed.js +156 -0
  532. data/vendor/assets/javascripts/dojo/nls/sl/colors.js +8 -0
  533. data/vendor/assets/javascripts/dojo/nls/sl/colors.js.uncompressed.js +156 -0
  534. data/vendor/assets/javascripts/dojo/nls/sv/colors.js +8 -0
  535. data/vendor/assets/javascripts/dojo/nls/sv/colors.js.uncompressed.js +156 -0
  536. data/vendor/assets/javascripts/dojo/nls/th/colors.js +8 -0
  537. data/vendor/assets/javascripts/dojo/nls/th/colors.js.uncompressed.js +156 -0
  538. data/vendor/assets/javascripts/dojo/nls/tr/colors.js +8 -0
  539. data/vendor/assets/javascripts/dojo/nls/tr/colors.js.uncompressed.js +156 -0
  540. data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js +8 -0
  541. data/vendor/assets/javascripts/dojo/nls/zh-tw/colors.js.uncompressed.js +156 -0
  542. data/vendor/assets/javascripts/dojo/nls/zh/colors.js +8 -0
  543. data/vendor/assets/javascripts/dojo/nls/zh/colors.js.uncompressed.js +156 -0
  544. data/vendor/assets/javascripts/dojo/number.js +305 -0
  545. data/vendor/assets/javascripts/dojo/number.js.uncompressed.js +576 -0
  546. data/vendor/assets/javascripts/dojo/on.js +311 -0
  547. data/vendor/assets/javascripts/dojo/on.js.uncompressed.js +474 -0
  548. data/vendor/assets/javascripts/dojo/package.json +23 -0
  549. data/vendor/assets/javascripts/dojo/parser.js +299 -0
  550. data/vendor/assets/javascripts/dojo/parser.js.uncompressed.js +594 -0
  551. data/vendor/assets/javascripts/dojo/query.js +195 -0
  552. data/vendor/assets/javascripts/dojo/query.js.uncompressed.js +713 -0
  553. data/vendor/assets/javascripts/dojo/ready.js +82 -0
  554. data/vendor/assets/javascripts/dojo/ready.js.uncompressed.js +138 -0
  555. data/vendor/assets/javascripts/dojo/regexp.js +32 -0
  556. data/vendor/assets/javascripts/dojo/regexp.js.uncompressed.js +73 -0
  557. data/vendor/assets/javascripts/dojo/require.js +12 -0
  558. data/vendor/assets/javascripts/dojo/require.js.uncompressed.js +7 -0
  559. data/vendor/assets/javascripts/dojo/resources/LICENSE +30 -0
  560. data/vendor/assets/javascripts/dojo/resources/_modules.js +36 -0
  561. data/vendor/assets/javascripts/dojo/resources/blank.gif +0 -0
  562. data/vendor/assets/javascripts/dojo/resources/blank.html +1 -0
  563. data/vendor/assets/javascripts/dojo/resources/dnd.css +14 -0
  564. data/vendor/assets/javascripts/dojo/resources/dojo.css +98 -0
  565. data/vendor/assets/javascripts/dojo/resources/iframe_history.html +44 -0
  566. data/vendor/assets/javascripts/dojo/resources/images/dndCopy.png +0 -0
  567. data/vendor/assets/javascripts/dojo/resources/images/dndMove.png +0 -0
  568. data/vendor/assets/javascripts/dojo/resources/images/dndNoCopy.png +0 -0
  569. data/vendor/assets/javascripts/dojo/resources/images/dndNoMove.png +0 -0
  570. data/vendor/assets/javascripts/dojo/rpc/JsonService.js +34 -0
  571. data/vendor/assets/javascripts/dojo/rpc/JsonService.js.uncompressed.js +85 -0
  572. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js +29 -0
  573. data/vendor/assets/javascripts/dojo/rpc/JsonpService.js.uncompressed.js +67 -0
  574. data/vendor/assets/javascripts/dojo/rpc/RpcService.js +87 -0
  575. data/vendor/assets/javascripts/dojo/rpc/RpcService.js.uncompressed.js +175 -0
  576. data/vendor/assets/javascripts/dojo/selector/_loader.js +40 -0
  577. data/vendor/assets/javascripts/dojo/selector/_loader.js.uncompressed.js +45 -0
  578. data/vendor/assets/javascripts/dojo/selector/acme.js +765 -0
  579. data/vendor/assets/javascripts/dojo/selector/acme.js.uncompressed.js +1480 -0
  580. data/vendor/assets/javascripts/dojo/selector/lite.js +213 -0
  581. data/vendor/assets/javascripts/dojo/selector/lite.js.uncompressed.js +264 -0
  582. data/vendor/assets/javascripts/dojo/store/Cache.js +47 -0
  583. data/vendor/assets/javascripts/dojo/store/Cache.js.uncompressed.js +148 -0
  584. data/vendor/assets/javascripts/dojo/store/DataStore.js +103 -0
  585. data/vendor/assets/javascripts/dojo/store/DataStore.js.uncompressed.js +170 -0
  586. data/vendor/assets/javascripts/dojo/store/JsonRest.js +56 -0
  587. data/vendor/assets/javascripts/dojo/store/JsonRest.js.uncompressed.js +155 -0
  588. data/vendor/assets/javascripts/dojo/store/Memory.js +55 -0
  589. data/vendor/assets/javascripts/dojo/store/Memory.js.uncompressed.js +161 -0
  590. data/vendor/assets/javascripts/dojo/store/Observable.js +125 -0
  591. data/vendor/assets/javascripts/dojo/store/Observable.js.uncompressed.js +175 -0
  592. data/vendor/assets/javascripts/dojo/store/README +10 -0
  593. data/vendor/assets/javascripts/dojo/store/api/Store.js +52 -0
  594. data/vendor/assets/javascripts/dojo/store/api/Store.js.uncompressed.js +297 -0
  595. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js +39 -0
  596. data/vendor/assets/javascripts/dojo/store/util/QueryResults.js.uncompressed.js +64 -0
  597. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js +63 -0
  598. data/vendor/assets/javascripts/dojo/store/util/SimpleQueryEngine.js.uncompressed.js +108 -0
  599. data/vendor/assets/javascripts/dojo/string.js +57 -0
  600. data/vendor/assets/javascripts/dojo/string.js.uncompressed.js +162 -0
  601. data/vendor/assets/javascripts/dojo/text.js +99 -0
  602. data/vendor/assets/javascripts/dojo/text.js.uncompressed.js +212 -0
  603. data/vendor/assets/javascripts/dojo/topic.js +15 -0
  604. data/vendor/assets/javascripts/dojo/topic.js.uncompressed.js +33 -0
  605. data/vendor/assets/javascripts/dojo/touch.js +17 -0
  606. data/vendor/assets/javascripts/dojo/touch.js.uncompressed.js +89 -0
  607. data/vendor/assets/javascripts/dojo/uacss.js +25 -0
  608. data/vendor/assets/javascripts/dojo/uacss.js.uncompressed.js +66 -0
  609. data/vendor/assets/javascripts/dojo/window.js +119 -0
  610. data/vendor/assets/javascripts/dojo/window.js.uncompressed.js +169 -0
  611. 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")