oxymoron 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (854) hide show
  1. checksums.yaml +7 -0
  2. data/.DS_Store +0 -0
  3. data/.gitignore +10 -0
  4. data/Gemfile +13 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.RU.md +324 -0
  7. data/README.md +319 -0
  8. data/Rakefile +34 -0
  9. data/app/.DS_Store +0 -0
  10. data/app/assets/.DS_Store +0 -0
  11. data/app/assets/javascripts/.DS_Store +0 -0
  12. data/app/assets/javascripts/oxymoron/.DS_Store +0 -0
  13. data/app/assets/javascripts/oxymoron/config.js.erb +5 -0
  14. data/app/assets/javascripts/oxymoron/config/debug.js.erb +4 -0
  15. data/app/assets/javascripts/oxymoron/config/http.js +8 -0
  16. data/app/assets/javascripts/oxymoron/config/states.js.erb +89 -0
  17. data/app/assets/javascripts/oxymoron/directives.js.erb +6 -0
  18. data/app/assets/javascripts/oxymoron/directives/checklist_model.js +141 -0
  19. data/app/assets/javascripts/oxymoron/directives/click_outside.js +25 -0
  20. data/app/assets/javascripts/oxymoron/directives/content_for.js +24 -0
  21. data/app/assets/javascripts/oxymoron/directives/fileupload.js +68 -0
  22. data/app/assets/javascripts/oxymoron/notifier.js.erb +39 -0
  23. data/app/assets/javascripts/oxymoron/oxymoron.js.erb +11 -0
  24. data/app/assets/javascripts/oxymoron/routes.js.erb +66 -0
  25. data/app/assets/javascripts/oxymoron/services.js.erb +6 -0
  26. data/app/assets/javascripts/oxymoron/services/interceptor.js +20 -0
  27. data/app/assets/javascripts/oxymoron/services/resources.js.erb +12 -0
  28. data/app/assets/javascripts/oxymoron/services/sign.js +25 -0
  29. data/app/assets/javascripts/oxymoron/services/validate.js +41 -0
  30. data/app/assets/javascripts/oxymoron/states.js.erb +3 -0
  31. data/app/helpers/form_helper.rb +35 -0
  32. data/app/helpers/oxymoron_form_builder.rb +81 -0
  33. data/lib/.DS_Store +0 -0
  34. data/lib/oxymoron.rb +123 -0
  35. data/lib/oxymoron/concern.rb +21 -0
  36. data/lib/oxymoron/engine.rb +35 -0
  37. data/lib/oxymoron/version.rb +3 -0
  38. data/lib/tasks/oxymoron_tasks.rake +4 -0
  39. data/oxymoron.gemspec +24 -0
  40. data/test/dummy/README.rdoc +28 -0
  41. data/test/dummy/Rakefile +6 -0
  42. data/test/dummy/app/assets/images/.keep +0 -0
  43. data/test/dummy/app/assets/javascripts/application.js +13 -0
  44. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  45. data/test/dummy/app/controllers/application_controller.rb +5 -0
  46. data/test/dummy/app/controllers/concerns/.keep +0 -0
  47. data/test/dummy/app/helpers/application_helper.rb +2 -0
  48. data/test/dummy/app/mailers/.keep +0 -0
  49. data/test/dummy/app/models/.keep +0 -0
  50. data/test/dummy/app/models/concerns/.keep +0 -0
  51. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  52. data/test/dummy/config.ru +4 -0
  53. data/test/dummy/config/application.rb +26 -0
  54. data/test/dummy/config/boot.rb +5 -0
  55. data/test/dummy/config/database.yml +25 -0
  56. data/test/dummy/config/environment.rb +5 -0
  57. data/test/dummy/config/environments/development.rb +41 -0
  58. data/test/dummy/config/environments/production.rb +79 -0
  59. data/test/dummy/config/environments/test.rb +42 -0
  60. data/test/dummy/config/initializers/assets.rb +11 -0
  61. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  62. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  63. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  64. data/test/dummy/config/initializers/inflections.rb +16 -0
  65. data/test/dummy/config/initializers/mime_types.rb +4 -0
  66. data/test/dummy/config/initializers/session_store.rb +3 -0
  67. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  68. data/test/dummy/config/locales/en.yml +23 -0
  69. data/test/dummy/config/routes.rb +56 -0
  70. data/test/dummy/config/secrets.yml +22 -0
  71. data/test/dummy/lib/assets/.keep +0 -0
  72. data/test/dummy/log/.keep +0 -0
  73. data/test/dummy/public/404.html +67 -0
  74. data/test/dummy/public/422.html +67 -0
  75. data/test/dummy/public/500.html +66 -0
  76. data/test/dummy/public/favicon.ico +0 -0
  77. data/test/oxymoron_test.rb +7 -0
  78. data/test/test_helper.rb +19 -0
  79. data/vendor/.DS_Store +0 -0
  80. data/vendor/assets/.DS_Store +0 -0
  81. data/vendor/assets/javascripts/.DS_Store +0 -0
  82. data/vendor/assets/javascripts/oxymoron/.DS_Store +0 -0
  83. data/vendor/assets/javascripts/oxymoron/angular-animate.js +3928 -0
  84. data/vendor/assets/javascripts/oxymoron/angular-aria.js +397 -0
  85. data/vendor/assets/javascripts/oxymoron/angular-cookies.js +321 -0
  86. data/vendor/assets/javascripts/oxymoron/angular-loader.js +443 -0
  87. data/vendor/assets/javascripts/oxymoron/angular-message-format.js +980 -0
  88. data/vendor/assets/javascripts/oxymoron/angular-messages.js +685 -0
  89. data/vendor/assets/javascripts/oxymoron/angular-mocks.js +2470 -0
  90. data/vendor/assets/javascripts/oxymoron/angular-resource.js +675 -0
  91. data/vendor/assets/javascripts/oxymoron/angular-route.js +991 -0
  92. data/vendor/assets/javascripts/oxymoron/angular-sanitize.js +683 -0
  93. data/vendor/assets/javascripts/oxymoron/angular-scenario.js +40324 -0
  94. data/vendor/assets/javascripts/oxymoron/angular-touch.js +628 -0
  95. data/vendor/assets/javascripts/oxymoron/angular-ui-router.js +4390 -0
  96. data/vendor/assets/javascripts/oxymoron/angular.js +28904 -0
  97. data/vendor/assets/javascripts/oxymoron/dcbox.js +311 -0
  98. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_aa-dj.js +128 -0
  99. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_aa-er.js +128 -0
  100. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_aa-et.js +128 -0
  101. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_aa.js +128 -0
  102. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_af-na.js +110 -0
  103. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_af-za.js +110 -0
  104. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_af.js +110 -0
  105. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_agq-cm.js +128 -0
  106. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_agq.js +128 -0
  107. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ak-gh.js +128 -0
  108. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ak.js +128 -0
  109. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_am-et.js +110 -0
  110. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_am.js +110 -0
  111. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-001.js +110 -0
  112. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ae.js +110 -0
  113. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-bh.js +110 -0
  114. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-dj.js +110 -0
  115. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-dz.js +110 -0
  116. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-eg.js +110 -0
  117. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-eh.js +110 -0
  118. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-er.js +110 -0
  119. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-il.js +110 -0
  120. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-iq.js +110 -0
  121. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-jo.js +110 -0
  122. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-km.js +110 -0
  123. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-kw.js +110 -0
  124. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-lb.js +110 -0
  125. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ly.js +110 -0
  126. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ma.js +110 -0
  127. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-mr.js +110 -0
  128. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-om.js +110 -0
  129. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ps.js +110 -0
  130. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-qa.js +110 -0
  131. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-sa.js +110 -0
  132. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-sd.js +110 -0
  133. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-so.js +110 -0
  134. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ss.js +110 -0
  135. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-sy.js +110 -0
  136. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-td.js +110 -0
  137. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-tn.js +110 -0
  138. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar-ye.js +110 -0
  139. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ar.js +110 -0
  140. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_as-in.js +128 -0
  141. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_as.js +128 -0
  142. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_asa-tz.js +128 -0
  143. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_asa.js +128 -0
  144. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ast-es.js +128 -0
  145. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ast.js +128 -0
  146. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_az-cyrl-az.js +110 -0
  147. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_az-cyrl.js +110 -0
  148. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_az-latn-az.js +110 -0
  149. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_az-latn.js +110 -0
  150. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_az.js +110 -0
  151. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bas-cm.js +128 -0
  152. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bas.js +128 -0
  153. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_be-by.js +110 -0
  154. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_be.js +110 -0
  155. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bem-zm.js +128 -0
  156. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bem.js +128 -0
  157. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bez-tz.js +128 -0
  158. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bez.js +128 -0
  159. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bg-bg.js +110 -0
  160. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bg.js +110 -0
  161. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bm-latn-ml.js +128 -0
  162. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bm-latn.js +128 -0
  163. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bm-ml.js +115 -0
  164. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bm.js +128 -0
  165. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bn-bd.js +110 -0
  166. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bn-in.js +110 -0
  167. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bn.js +110 -0
  168. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bo-cn.js +128 -0
  169. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bo-in.js +128 -0
  170. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bo.js +128 -0
  171. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_br-fr.js +110 -0
  172. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_br.js +110 -0
  173. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_brx-in.js +128 -0
  174. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_brx.js +128 -0
  175. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bs-cyrl-ba.js +128 -0
  176. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bs-cyrl.js +128 -0
  177. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bs-latn-ba.js +128 -0
  178. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bs-latn.js +128 -0
  179. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_bs.js +128 -0
  180. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_byn-er.js +115 -0
  181. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_byn.js +115 -0
  182. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca-ad.js +128 -0
  183. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca-es-valencia.js +128 -0
  184. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca-es.js +128 -0
  185. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca-fr.js +128 -0
  186. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca-it.js +128 -0
  187. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ca.js +128 -0
  188. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cgg-ug.js +128 -0
  189. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cgg.js +128 -0
  190. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_chr-us.js +110 -0
  191. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_chr.js +110 -0
  192. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-arab-iq.js +128 -0
  193. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-arab-ir.js +128 -0
  194. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-arab.js +128 -0
  195. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-iq.js +128 -0
  196. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-ir.js +128 -0
  197. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-latn-iq.js +128 -0
  198. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb-latn.js +128 -0
  199. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ckb.js +128 -0
  200. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cs-cz.js +128 -0
  201. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cs.js +128 -0
  202. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cy-gb.js +110 -0
  203. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_cy.js +110 -0
  204. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_da-dk.js +141 -0
  205. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_da-gl.js +141 -0
  206. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_da.js +141 -0
  207. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dav-ke.js +128 -0
  208. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dav.js +128 -0
  209. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-at.js +128 -0
  210. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-be.js +128 -0
  211. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-ch.js +128 -0
  212. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-de.js +128 -0
  213. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-li.js +128 -0
  214. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de-lu.js +128 -0
  215. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_de.js +128 -0
  216. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dje-ne.js +128 -0
  217. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dje.js +128 -0
  218. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dsb-de.js +128 -0
  219. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dsb.js +128 -0
  220. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dua-cm.js +128 -0
  221. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dua.js +128 -0
  222. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dyo-sn.js +128 -0
  223. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dyo.js +128 -0
  224. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dz-bt.js +128 -0
  225. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_dz.js +128 -0
  226. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ebu-ke.js +128 -0
  227. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ebu.js +128 -0
  228. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ee-gh.js +128 -0
  229. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ee-tg.js +128 -0
  230. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ee.js +128 -0
  231. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_el-cy.js +110 -0
  232. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_el-gr.js +110 -0
  233. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_el.js +110 -0
  234. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-001.js +128 -0
  235. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-150.js +128 -0
  236. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ag.js +128 -0
  237. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ai.js +128 -0
  238. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-as.js +128 -0
  239. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-au.js +128 -0
  240. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-bb.js +128 -0
  241. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-be.js +128 -0
  242. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-bm.js +128 -0
  243. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-bs.js +128 -0
  244. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-bw.js +128 -0
  245. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-bz.js +128 -0
  246. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ca.js +128 -0
  247. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-cc.js +128 -0
  248. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ck.js +128 -0
  249. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-cm.js +128 -0
  250. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-cx.js +128 -0
  251. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-dg.js +128 -0
  252. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-dm.js +128 -0
  253. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-er.js +128 -0
  254. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-fj.js +128 -0
  255. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-fk.js +128 -0
  256. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-fm.js +128 -0
  257. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gb.js +128 -0
  258. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gd.js +128 -0
  259. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gg.js +128 -0
  260. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gh.js +128 -0
  261. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gi.js +128 -0
  262. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gm.js +128 -0
  263. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gu.js +128 -0
  264. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-gy.js +128 -0
  265. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-hk.js +128 -0
  266. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ie.js +128 -0
  267. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-im.js +128 -0
  268. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-in.js +128 -0
  269. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-io.js +128 -0
  270. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-iso.js +128 -0
  271. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-je.js +128 -0
  272. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-jm.js +128 -0
  273. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ke.js +128 -0
  274. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ki.js +128 -0
  275. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-kn.js +128 -0
  276. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ky.js +128 -0
  277. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-lc.js +128 -0
  278. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-lr.js +128 -0
  279. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ls.js +128 -0
  280. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mg.js +128 -0
  281. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mh.js +128 -0
  282. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mo.js +128 -0
  283. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mp.js +128 -0
  284. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ms.js +128 -0
  285. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mt.js +128 -0
  286. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mu.js +128 -0
  287. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-mw.js +128 -0
  288. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-my.js +128 -0
  289. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-na.js +128 -0
  290. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-nf.js +128 -0
  291. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ng.js +128 -0
  292. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-nr.js +128 -0
  293. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-nu.js +128 -0
  294. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-nz.js +128 -0
  295. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-pg.js +128 -0
  296. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ph.js +128 -0
  297. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-pk.js +128 -0
  298. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-pn.js +128 -0
  299. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-pr.js +128 -0
  300. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-pw.js +128 -0
  301. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-rw.js +128 -0
  302. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sb.js +128 -0
  303. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sc.js +128 -0
  304. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sd.js +128 -0
  305. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sg.js +128 -0
  306. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sh.js +128 -0
  307. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sl.js +128 -0
  308. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ss.js +128 -0
  309. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sx.js +128 -0
  310. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-sz.js +128 -0
  311. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-tc.js +128 -0
  312. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-tk.js +128 -0
  313. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-to.js +128 -0
  314. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-tt.js +128 -0
  315. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-tv.js +128 -0
  316. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-tz.js +128 -0
  317. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ug.js +128 -0
  318. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-um.js +128 -0
  319. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-us.js +128 -0
  320. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-vc.js +128 -0
  321. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-vg.js +128 -0
  322. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-vi.js +128 -0
  323. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-vu.js +128 -0
  324. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-ws.js +128 -0
  325. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-za.js +128 -0
  326. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-zm.js +128 -0
  327. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en-zw.js +128 -0
  328. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_en.js +128 -0
  329. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_eo-001.js +128 -0
  330. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_eo.js +128 -0
  331. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-419.js +110 -0
  332. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ar.js +110 -0
  333. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-bo.js +110 -0
  334. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-cl.js +110 -0
  335. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-co.js +110 -0
  336. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-cr.js +110 -0
  337. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-cu.js +110 -0
  338. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-do.js +110 -0
  339. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ea.js +110 -0
  340. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ec.js +110 -0
  341. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-es.js +110 -0
  342. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-gq.js +110 -0
  343. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-gt.js +110 -0
  344. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-hn.js +110 -0
  345. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ic.js +110 -0
  346. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-mx.js +110 -0
  347. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ni.js +110 -0
  348. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-pa.js +110 -0
  349. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-pe.js +110 -0
  350. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ph.js +110 -0
  351. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-pr.js +110 -0
  352. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-py.js +110 -0
  353. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-sv.js +110 -0
  354. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-us.js +110 -0
  355. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-uy.js +110 -0
  356. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es-ve.js +110 -0
  357. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_es.js +110 -0
  358. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_et-ee.js +128 -0
  359. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_et.js +128 -0
  360. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_eu-es.js +110 -0
  361. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_eu.js +110 -0
  362. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ewo-cm.js +128 -0
  363. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ewo.js +128 -0
  364. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fa-af.js +110 -0
  365. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fa-ir.js +110 -0
  366. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fa.js +110 -0
  367. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ff-cm.js +128 -0
  368. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ff-gn.js +128 -0
  369. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ff-mr.js +128 -0
  370. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ff-sn.js +128 -0
  371. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ff.js +128 -0
  372. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fi-fi.js +128 -0
  373. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fi.js +128 -0
  374. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fil-ph.js +128 -0
  375. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fil.js +128 -0
  376. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fo-fo.js +128 -0
  377. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fo.js +128 -0
  378. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-be.js +110 -0
  379. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-bf.js +110 -0
  380. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-bi.js +110 -0
  381. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-bj.js +110 -0
  382. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-bl.js +110 -0
  383. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ca.js +110 -0
  384. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-cd.js +110 -0
  385. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-cf.js +110 -0
  386. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-cg.js +110 -0
  387. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ch.js +110 -0
  388. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ci.js +110 -0
  389. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-cm.js +110 -0
  390. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-dj.js +110 -0
  391. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-dz.js +110 -0
  392. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-fr.js +110 -0
  393. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ga.js +110 -0
  394. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-gf.js +110 -0
  395. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-gn.js +110 -0
  396. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-gp.js +110 -0
  397. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-gq.js +110 -0
  398. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ht.js +110 -0
  399. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-km.js +110 -0
  400. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-lu.js +110 -0
  401. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ma.js +110 -0
  402. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mc.js +110 -0
  403. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mf.js +110 -0
  404. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mg.js +110 -0
  405. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ml.js +110 -0
  406. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mq.js +110 -0
  407. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mr.js +110 -0
  408. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-mu.js +110 -0
  409. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-nc.js +110 -0
  410. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-ne.js +110 -0
  411. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-pf.js +110 -0
  412. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-pm.js +110 -0
  413. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-re.js +110 -0
  414. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-rw.js +110 -0
  415. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-sc.js +110 -0
  416. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-sn.js +110 -0
  417. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-sy.js +110 -0
  418. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-td.js +110 -0
  419. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-tg.js +110 -0
  420. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-tn.js +110 -0
  421. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-vu.js +110 -0
  422. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-wf.js +110 -0
  423. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr-yt.js +110 -0
  424. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fr.js +110 -0
  425. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fur-it.js +128 -0
  426. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fur.js +128 -0
  427. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fy-nl.js +128 -0
  428. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_fy.js +128 -0
  429. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ga-ie.js +110 -0
  430. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ga.js +110 -0
  431. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gd-gb.js +128 -0
  432. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gd.js +128 -0
  433. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gl-es.js +128 -0
  434. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gl.js +128 -0
  435. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gsw-ch.js +110 -0
  436. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gsw-fr.js +110 -0
  437. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gsw-li.js +110 -0
  438. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gsw.js +110 -0
  439. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gu-in.js +110 -0
  440. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gu.js +110 -0
  441. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_guz-ke.js +128 -0
  442. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_guz.js +128 -0
  443. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gv-im.js +128 -0
  444. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_gv.js +128 -0
  445. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ha-latn-gh.js +128 -0
  446. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ha-latn-ne.js +128 -0
  447. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ha-latn-ng.js +128 -0
  448. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ha-latn.js +128 -0
  449. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ha.js +128 -0
  450. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_haw-us.js +110 -0
  451. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_haw.js +110 -0
  452. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_he-il.js +128 -0
  453. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_he.js +128 -0
  454. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hi-in.js +110 -0
  455. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hi.js +110 -0
  456. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hr-ba.js +128 -0
  457. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hr-hr.js +128 -0
  458. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hr.js +128 -0
  459. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hsb-de.js +128 -0
  460. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hsb.js +128 -0
  461. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hu-hu.js +110 -0
  462. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hu.js +110 -0
  463. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hy-am.js +110 -0
  464. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_hy.js +110 -0
  465. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ia-fr.js +128 -0
  466. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ia.js +128 -0
  467. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_id-id.js +110 -0
  468. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_id.js +110 -0
  469. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ig-ng.js +128 -0
  470. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ig.js +128 -0
  471. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ii-cn.js +128 -0
  472. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ii.js +128 -0
  473. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_in.js +110 -0
  474. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_is-is.js +141 -0
  475. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_is.js +141 -0
  476. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_it-ch.js +128 -0
  477. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_it-it.js +128 -0
  478. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_it-sm.js +128 -0
  479. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_it.js +128 -0
  480. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_iw.js +128 -0
  481. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ja-jp.js +110 -0
  482. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ja.js +110 -0
  483. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_jgo-cm.js +128 -0
  484. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_jgo.js +128 -0
  485. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_jmc-tz.js +128 -0
  486. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_jmc.js +128 -0
  487. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ka-ge.js +110 -0
  488. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ka.js +110 -0
  489. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kab-dz.js +128 -0
  490. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kab.js +128 -0
  491. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kam-ke.js +128 -0
  492. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kam.js +128 -0
  493. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kde-tz.js +128 -0
  494. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kde.js +128 -0
  495. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kea-cv.js +128 -0
  496. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kea.js +128 -0
  497. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_khq-ml.js +128 -0
  498. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_khq.js +128 -0
  499. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ki-ke.js +128 -0
  500. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ki.js +128 -0
  501. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kk-cyrl-kz.js +110 -0
  502. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kk-cyrl.js +110 -0
  503. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kk.js +110 -0
  504. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kkj-cm.js +128 -0
  505. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kkj.js +128 -0
  506. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kl-gl.js +128 -0
  507. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kl.js +128 -0
  508. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kln-ke.js +128 -0
  509. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kln.js +128 -0
  510. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_km-kh.js +110 -0
  511. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_km.js +110 -0
  512. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kn-in.js +110 -0
  513. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kn.js +110 -0
  514. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ko-kp.js +110 -0
  515. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ko-kr.js +110 -0
  516. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ko.js +110 -0
  517. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kok-in.js +128 -0
  518. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kok.js +128 -0
  519. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ks-arab-in.js +128 -0
  520. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ks-arab.js +128 -0
  521. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ks.js +128 -0
  522. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksb-tz.js +128 -0
  523. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksb.js +128 -0
  524. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksf-cm.js +128 -0
  525. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksf.js +128 -0
  526. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksh-de.js +128 -0
  527. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ksh.js +128 -0
  528. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kw-gb.js +128 -0
  529. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_kw.js +128 -0
  530. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ky-cyrl-kg.js +110 -0
  531. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ky-cyrl.js +110 -0
  532. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ky.js +110 -0
  533. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lag-tz.js +128 -0
  534. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lag.js +128 -0
  535. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lb-lu.js +128 -0
  536. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lb.js +128 -0
  537. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lg-ug.js +128 -0
  538. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lg.js +128 -0
  539. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lkt-us.js +128 -0
  540. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lkt.js +128 -0
  541. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ln-ao.js +110 -0
  542. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ln-cd.js +110 -0
  543. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ln-cf.js +110 -0
  544. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ln-cg.js +110 -0
  545. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ln.js +110 -0
  546. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lo-la.js +110 -0
  547. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lo.js +110 -0
  548. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lt-lt.js +128 -0
  549. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lt.js +128 -0
  550. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lu-cd.js +128 -0
  551. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lu.js +128 -0
  552. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_luo-ke.js +128 -0
  553. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_luo.js +128 -0
  554. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_luy-ke.js +128 -0
  555. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_luy.js +128 -0
  556. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lv-lv.js +128 -0
  557. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_lv.js +128 -0
  558. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mas-ke.js +128 -0
  559. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mas-tz.js +128 -0
  560. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mas.js +128 -0
  561. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mer-ke.js +128 -0
  562. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mer.js +128 -0
  563. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mfe-mu.js +128 -0
  564. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mfe.js +128 -0
  565. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mg-mg.js +128 -0
  566. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mg.js +128 -0
  567. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mgh-mz.js +128 -0
  568. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mgh.js +128 -0
  569. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mgo-cm.js +128 -0
  570. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mgo.js +128 -0
  571. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mk-mk.js +128 -0
  572. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mk.js +128 -0
  573. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ml-in.js +110 -0
  574. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ml.js +110 -0
  575. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mn-cyrl-mn.js +110 -0
  576. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mn-cyrl.js +110 -0
  577. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mn.js +110 -0
  578. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mr-in.js +110 -0
  579. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mr.js +110 -0
  580. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ms-latn-bn.js +110 -0
  581. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ms-latn-my.js +110 -0
  582. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ms-latn-sg.js +110 -0
  583. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ms-latn.js +110 -0
  584. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ms.js +110 -0
  585. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mt-mt.js +110 -0
  586. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mt.js +110 -0
  587. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mua-cm.js +128 -0
  588. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_mua.js +128 -0
  589. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_my-mm.js +110 -0
  590. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_my.js +110 -0
  591. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_naq-na.js +128 -0
  592. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_naq.js +128 -0
  593. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nb-no.js +110 -0
  594. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nb-sj.js +110 -0
  595. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nb.js +110 -0
  596. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nd-zw.js +128 -0
  597. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nd.js +128 -0
  598. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ne-in.js +110 -0
  599. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ne-np.js +110 -0
  600. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ne.js +110 -0
  601. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-aw.js +128 -0
  602. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-be.js +128 -0
  603. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-bq.js +128 -0
  604. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-cw.js +128 -0
  605. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-nl.js +128 -0
  606. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-sr.js +128 -0
  607. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl-sx.js +128 -0
  608. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nl.js +128 -0
  609. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nmg-cm.js +128 -0
  610. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nmg.js +128 -0
  611. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nn-no.js +128 -0
  612. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nn.js +128 -0
  613. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nnh-cm.js +128 -0
  614. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nnh.js +128 -0
  615. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_no-no.js +110 -0
  616. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_no.js +110 -0
  617. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nr-za.js +128 -0
  618. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nr.js +128 -0
  619. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nso-za.js +128 -0
  620. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nso.js +128 -0
  621. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nus-sd.js +128 -0
  622. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nus.js +128 -0
  623. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nyn-ug.js +128 -0
  624. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_nyn.js +128 -0
  625. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_om-et.js +128 -0
  626. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_om-ke.js +128 -0
  627. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_om.js +128 -0
  628. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_or-in.js +110 -0
  629. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_or.js +110 -0
  630. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_os-ge.js +128 -0
  631. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_os-ru.js +128 -0
  632. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_os.js +128 -0
  633. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pa-arab-pk.js +110 -0
  634. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pa-arab.js +110 -0
  635. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pa-guru-in.js +110 -0
  636. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pa-guru.js +110 -0
  637. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pa.js +110 -0
  638. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pl-pl.js +128 -0
  639. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pl.js +128 -0
  640. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ps-af.js +128 -0
  641. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ps.js +128 -0
  642. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-ao.js +110 -0
  643. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-br.js +110 -0
  644. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-cv.js +110 -0
  645. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-gw.js +110 -0
  646. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-mo.js +110 -0
  647. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-mz.js +110 -0
  648. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-pt.js +110 -0
  649. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-st.js +110 -0
  650. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt-tl.js +110 -0
  651. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_pt.js +110 -0
  652. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_qu-bo.js +128 -0
  653. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_qu-ec.js +128 -0
  654. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_qu-pe.js +128 -0
  655. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_qu.js +128 -0
  656. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rm-ch.js +128 -0
  657. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rm.js +128 -0
  658. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rn-bi.js +128 -0
  659. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rn.js +128 -0
  660. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ro-md.js +128 -0
  661. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ro-ro.js +128 -0
  662. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ro.js +128 -0
  663. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rof-tz.js +128 -0
  664. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rof.js +128 -0
  665. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-by.js +128 -0
  666. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-kg.js +128 -0
  667. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-kz.js +128 -0
  668. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-md.js +128 -0
  669. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-ru.js +128 -0
  670. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru-ua.js +128 -0
  671. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ru.js +128 -0
  672. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rw-rw.js +128 -0
  673. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rw.js +128 -0
  674. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rwk-tz.js +128 -0
  675. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_rwk.js +128 -0
  676. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sah-ru.js +128 -0
  677. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sah.js +128 -0
  678. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_saq-ke.js +128 -0
  679. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_saq.js +128 -0
  680. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sbp-tz.js +128 -0
  681. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sbp.js +128 -0
  682. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_se-fi.js +128 -0
  683. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_se-no.js +128 -0
  684. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_se-se.js +128 -0
  685. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_se.js +128 -0
  686. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_seh-mz.js +128 -0
  687. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_seh.js +128 -0
  688. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ses-ml.js +128 -0
  689. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ses.js +128 -0
  690. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sg-cf.js +128 -0
  691. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sg.js +128 -0
  692. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_shi-latn-ma.js +128 -0
  693. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_shi-latn.js +128 -0
  694. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_shi-tfng-ma.js +128 -0
  695. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_shi-tfng.js +128 -0
  696. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_shi.js +128 -0
  697. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_si-lk.js +128 -0
  698. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_si.js +128 -0
  699. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sk-sk.js +128 -0
  700. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sk.js +128 -0
  701. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sl-si.js +128 -0
  702. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sl.js +128 -0
  703. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_smn-fi.js +128 -0
  704. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_smn.js +128 -0
  705. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sn-zw.js +128 -0
  706. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sn.js +128 -0
  707. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_so-dj.js +128 -0
  708. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_so-et.js +128 -0
  709. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_so-ke.js +128 -0
  710. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_so-so.js +128 -0
  711. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_so.js +128 -0
  712. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sq-al.js +110 -0
  713. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sq-mk.js +110 -0
  714. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sq-xk.js +110 -0
  715. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sq.js +110 -0
  716. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-cyrl-ba.js +128 -0
  717. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-cyrl-me.js +128 -0
  718. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-cyrl-rs.js +128 -0
  719. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-cyrl-xk.js +128 -0
  720. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-cyrl.js +128 -0
  721. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-latn-ba.js +128 -0
  722. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-latn-me.js +128 -0
  723. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-latn-rs.js +128 -0
  724. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-latn-xk.js +128 -0
  725. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr-latn.js +128 -0
  726. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sr.js +128 -0
  727. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ss-sz.js +128 -0
  728. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ss-za.js +128 -0
  729. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ss.js +128 -0
  730. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ssy-er.js +128 -0
  731. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ssy.js +128 -0
  732. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_st-ls.js +115 -0
  733. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_st-za.js +115 -0
  734. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_st.js +115 -0
  735. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sv-ax.js +128 -0
  736. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sv-fi.js +128 -0
  737. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sv-se.js +128 -0
  738. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sv.js +128 -0
  739. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sw-cd.js +128 -0
  740. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sw-ke.js +128 -0
  741. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sw-tz.js +128 -0
  742. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sw-ug.js +128 -0
  743. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_sw.js +128 -0
  744. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_swc-cd.js +128 -0
  745. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_swc.js +128 -0
  746. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ta-in.js +110 -0
  747. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ta-lk.js +110 -0
  748. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ta-my.js +110 -0
  749. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ta-sg.js +110 -0
  750. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ta.js +110 -0
  751. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_te-in.js +110 -0
  752. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_te.js +110 -0
  753. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_teo-ke.js +128 -0
  754. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_teo-ug.js +128 -0
  755. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_teo.js +128 -0
  756. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tg-cyrl-tj.js +115 -0
  757. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tg-cyrl.js +115 -0
  758. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tg.js +115 -0
  759. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_th-th.js +110 -0
  760. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_th.js +110 -0
  761. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ti-er.js +128 -0
  762. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ti-et.js +128 -0
  763. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ti.js +128 -0
  764. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tig-er.js +115 -0
  765. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tig.js +115 -0
  766. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tl.js +128 -0
  767. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tn-bw.js +128 -0
  768. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tn-za.js +128 -0
  769. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tn.js +128 -0
  770. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_to-to.js +128 -0
  771. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_to.js +128 -0
  772. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tr-cy.js +110 -0
  773. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tr-tr.js +110 -0
  774. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tr.js +110 -0
  775. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ts-za.js +128 -0
  776. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ts.js +128 -0
  777. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_twq-ne.js +128 -0
  778. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_twq.js +128 -0
  779. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tzm-latn-ma.js +128 -0
  780. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tzm-latn.js +128 -0
  781. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_tzm.js +128 -0
  782. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ug-arab-cn.js +128 -0
  783. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ug-arab.js +128 -0
  784. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ug.js +128 -0
  785. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uk-ua.js +128 -0
  786. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uk.js +128 -0
  787. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ur-in.js +128 -0
  788. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ur-pk.js +128 -0
  789. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ur.js +128 -0
  790. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-arab-af.js +110 -0
  791. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-arab.js +110 -0
  792. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-cyrl-uz.js +110 -0
  793. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-cyrl.js +110 -0
  794. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-latn-uz.js +110 -0
  795. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz-latn.js +110 -0
  796. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_uz.js +110 -0
  797. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vai-latn-lr.js +128 -0
  798. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vai-latn.js +128 -0
  799. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vai-vaii-lr.js +128 -0
  800. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vai-vaii.js +128 -0
  801. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vai.js +128 -0
  802. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ve-za.js +128 -0
  803. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_ve.js +128 -0
  804. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vi-vn.js +110 -0
  805. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vi.js +110 -0
  806. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vo-001.js +128 -0
  807. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vo.js +128 -0
  808. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vun-tz.js +128 -0
  809. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_vun.js +128 -0
  810. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_wae-ch.js +128 -0
  811. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_wae.js +128 -0
  812. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_wal-et.js +115 -0
  813. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_wal.js +115 -0
  814. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_xh-za.js +115 -0
  815. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_xh.js +115 -0
  816. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_xog-ug.js +128 -0
  817. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_xog.js +128 -0
  818. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yav-cm.js +128 -0
  819. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yav.js +128 -0
  820. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yi-001.js +128 -0
  821. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yi.js +128 -0
  822. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yo-bj.js +128 -0
  823. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yo-ng.js +128 -0
  824. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_yo.js +128 -0
  825. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zgh-ma.js +128 -0
  826. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zgh.js +128 -0
  827. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-cn.js +110 -0
  828. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hans-cn.js +110 -0
  829. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hans-hk.js +110 -0
  830. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hans-mo.js +110 -0
  831. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hans-sg.js +110 -0
  832. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hans.js +110 -0
  833. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hant-hk.js +110 -0
  834. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hant-mo.js +110 -0
  835. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hant-tw.js +110 -0
  836. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hant.js +110 -0
  837. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-hk.js +110 -0
  838. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh-tw.js +110 -0
  839. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zh.js +110 -0
  840. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zu-za.js +110 -0
  841. data/vendor/assets/javascripts/oxymoron/i18n/angular-locale_zu.js +110 -0
  842. data/vendor/assets/javascripts/oxymoron/jquery.min.js +4 -0
  843. data/vendor/assets/javascripts/oxymoron/ng-notify.js +1 -0
  844. data/vendor/assets/javascripts/oxymoron/pace.js +2 -0
  845. data/vendor/assets/javascripts/oxymoron/perfect-scrollbar.js +1588 -0
  846. data/vendor/assets/javascripts/oxymoron/store.js +191 -0
  847. data/vendor/assets/javascripts/oxymoron/underscore.js +1548 -0
  848. data/vendor/assets/stylesheets/.DS_Store +0 -0
  849. data/vendor/assets/stylesheets/oxymoron/md-data-table.css +482 -0
  850. data/vendor/assets/stylesheets/oxymoron/ng-notify.css +40 -0
  851. data/vendor/assets/stylesheets/oxymoron/normalize.css +427 -0
  852. data/vendor/assets/stylesheets/oxymoron/pace.css +41 -0
  853. data/vendor/assets/stylesheets/oxymoron/perfect-scrollbar.css +1 -0
  854. metadata +1004 -0
@@ -0,0 +1,675 @@
1
+ /**
2
+ * @license AngularJS v1.4.7
3
+ * (c) 2010-2015 Google, Inc. http://angularjs.org
4
+ * License: MIT
5
+ */
6
+ (function(window, angular, undefined) {'use strict';
7
+
8
+ var $resourceMinErr = angular.$$minErr('$resource');
9
+
10
+ // Helper functions and regex to lookup a dotted path on an object
11
+ // stopping at undefined/null. The path must be composed of ASCII
12
+ // identifiers (just like $parse)
13
+ var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;
14
+
15
+ function isValidDottedPath(path) {
16
+ return (path != null && path !== '' && path !== 'hasOwnProperty' &&
17
+ MEMBER_NAME_REGEX.test('.' + path));
18
+ }
19
+
20
+ function lookupDottedPath(obj, path) {
21
+ if (!isValidDottedPath(path)) {
22
+ throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path);
23
+ }
24
+ var keys = path.split('.');
25
+ for (var i = 0, ii = keys.length; i < ii && angular.isDefined(obj); i++) {
26
+ var key = keys[i];
27
+ obj = (obj !== null) ? obj[key] : undefined;
28
+ }
29
+ return obj;
30
+ }
31
+
32
+ /**
33
+ * Create a shallow copy of an object and clear other fields from the destination
34
+ */
35
+ function shallowClearAndCopy(src, dst) {
36
+ dst = dst || {};
37
+
38
+ angular.forEach(dst, function(value, key) {
39
+ delete dst[key];
40
+ });
41
+
42
+ for (var key in src) {
43
+ if (src.hasOwnProperty(key) && !(key.charAt(0) === '$' && key.charAt(1) === '$')) {
44
+ dst[key] = src[key];
45
+ }
46
+ }
47
+
48
+ return dst;
49
+ }
50
+
51
+ /**
52
+ * @ngdoc module
53
+ * @name ngResource
54
+ * @description
55
+ *
56
+ * # ngResource
57
+ *
58
+ * The `ngResource` module provides interaction support with RESTful services
59
+ * via the $resource service.
60
+ *
61
+ *
62
+ * <div doc-module-components="ngResource"></div>
63
+ *
64
+ * See {@link ngResource.$resource `$resource`} for usage.
65
+ */
66
+
67
+ /**
68
+ * @ngdoc service
69
+ * @name $resource
70
+ * @requires $http
71
+ *
72
+ * @description
73
+ * A factory which creates a resource object that lets you interact with
74
+ * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources.
75
+ *
76
+ * The returned resource object has action methods which provide high-level behaviors without
77
+ * the need to interact with the low level {@link ng.$http $http} service.
78
+ *
79
+ * Requires the {@link ngResource `ngResource`} module to be installed.
80
+ *
81
+ * By default, trailing slashes will be stripped from the calculated URLs,
82
+ * which can pose problems with server backends that do not expect that
83
+ * behavior. This can be disabled by configuring the `$resourceProvider` like
84
+ * this:
85
+ *
86
+ * ```js
87
+ app.config(['$resourceProvider', function($resourceProvider) {
88
+ // Don't strip trailing slashes from calculated URLs
89
+ $resourceProvider.defaults.stripTrailingSlashes = false;
90
+ }]);
91
+ * ```
92
+ *
93
+ * @param {string} url A parameterized URL template with parameters prefixed by `:` as in
94
+ * `/user/:username`. If you are using a URL with a port number (e.g.
95
+ * `http://example.com:8080/api`), it will be respected.
96
+ *
97
+ * If you are using a url with a suffix, just add the suffix, like this:
98
+ * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')`
99
+ * or even `$resource('http://example.com/resource/:resource_id.:format')`
100
+ * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be
101
+ * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you
102
+ * can escape it with `/\.`.
103
+ *
104
+ * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
105
+ * `actions` methods. If any of the parameter value is a function, it will be executed every time
106
+ * when a param value needs to be obtained for a request (unless the param was overridden).
107
+ *
108
+ * Each key value in the parameter object is first bound to url template if present and then any
109
+ * excess keys are appended to the url search query after the `?`.
110
+ *
111
+ * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in
112
+ * URL `/path/greet?salutation=Hello`.
113
+ *
114
+ * If the parameter value is prefixed with `@` then the value for that parameter will be extracted
115
+ * from the corresponding property on the `data` object (provided when calling an action method). For
116
+ * example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of `someParam`
117
+ * will be `data.someProp`.
118
+ *
119
+ * @param {Object.<Object>=} actions Hash with declaration of custom actions that should extend
120
+ * the default set of resource actions. The declaration should be created in the format of {@link
121
+ * ng.$http#usage $http.config}:
122
+ *
123
+ * {action1: {method:?, params:?, isArray:?, headers:?, ...},
124
+ * action2: {method:?, params:?, isArray:?, headers:?, ...},
125
+ * ...}
126
+ *
127
+ * Where:
128
+ *
129
+ * - **`action`** – {string} – The name of action. This name becomes the name of the method on
130
+ * your resource object.
131
+ * - **`method`** – {string} – Case insensitive HTTP method (e.g. `GET`, `POST`, `PUT`,
132
+ * `DELETE`, `JSONP`, etc).
133
+ * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of
134
+ * the parameter value is a function, it will be executed every time when a param value needs to
135
+ * be obtained for a request (unless the param was overridden).
136
+ * - **`url`** – {string} – action specific `url` override. The url templating is supported just
137
+ * like for the resource-level urls.
138
+ * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array,
139
+ * see `returns` section.
140
+ * - **`transformRequest`** –
141
+ * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
142
+ * transform function or an array of such functions. The transform function takes the http
143
+ * request body and headers and returns its transformed (typically serialized) version.
144
+ * By default, transformRequest will contain one function that checks if the request data is
145
+ * an object and serializes to using `angular.toJson`. To prevent this behavior, set
146
+ * `transformRequest` to an empty array: `transformRequest: []`
147
+ * - **`transformResponse`** –
148
+ * `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
149
+ * transform function or an array of such functions. The transform function takes the http
150
+ * response body and headers and returns its transformed (typically deserialized) version.
151
+ * By default, transformResponse will contain one function that checks if the response looks like
152
+ * a JSON string and deserializes it using `angular.fromJson`. To prevent this behavior, set
153
+ * `transformResponse` to an empty array: `transformResponse: []`
154
+ * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
155
+ * GET request, otherwise if a cache instance built with
156
+ * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
157
+ * caching.
158
+ * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that
159
+ * should abort the request when resolved.
160
+ * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the
161
+ * XHR object. See
162
+ * [requests with credentials](https://developer.mozilla.org/en/http_access_control#section_5)
163
+ * for more information.
164
+ * - **`responseType`** - `{string}` - see
165
+ * [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType).
166
+ * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods -
167
+ * `response` and `responseError`. Both `response` and `responseError` interceptors get called
168
+ * with `http response` object. See {@link ng.$http $http interceptors}.
169
+ *
170
+ * @param {Object} options Hash with custom settings that should extend the
171
+ * default `$resourceProvider` behavior. The only supported option is
172
+ *
173
+ * Where:
174
+ *
175
+ * - **`stripTrailingSlashes`** – {boolean} – If true then the trailing
176
+ * slashes from any calculated URL will be stripped. (Defaults to true.)
177
+ *
178
+ * @returns {Object} A resource "class" object with methods for the default set of resource actions
179
+ * optionally extended with custom `actions`. The default set contains these actions:
180
+ * ```js
181
+ * { 'get': {method:'GET'},
182
+ * 'save': {method:'POST'},
183
+ * 'query': {method:'GET', isArray:true},
184
+ * 'remove': {method:'DELETE'},
185
+ * 'delete': {method:'DELETE'} };
186
+ * ```
187
+ *
188
+ * Calling these methods invoke an {@link ng.$http} with the specified http method,
189
+ * destination and parameters. When the data is returned from the server then the object is an
190
+ * instance of the resource class. The actions `save`, `remove` and `delete` are available on it
191
+ * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create,
192
+ * read, update, delete) on server-side data like this:
193
+ * ```js
194
+ * var User = $resource('/user/:userId', {userId:'@id'});
195
+ * var user = User.get({userId:123}, function() {
196
+ * user.abc = true;
197
+ * user.$save();
198
+ * });
199
+ * ```
200
+ *
201
+ * It is important to realize that invoking a $resource object method immediately returns an
202
+ * empty reference (object or array depending on `isArray`). Once the data is returned from the
203
+ * server the existing reference is populated with the actual data. This is a useful trick since
204
+ * usually the resource is assigned to a model which is then rendered by the view. Having an empty
205
+ * object results in no rendering, once the data arrives from the server then the object is
206
+ * populated with the data and the view automatically re-renders itself showing the new data. This
207
+ * means that in most cases one never has to write a callback function for the action methods.
208
+ *
209
+ * The action methods on the class object or instance object can be invoked with the following
210
+ * parameters:
211
+ *
212
+ * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])`
213
+ * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])`
214
+ * - non-GET instance actions: `instance.$action([parameters], [success], [error])`
215
+ *
216
+ *
217
+ * Success callback is called with (value, responseHeaders) arguments, where the value is
218
+ * the populated resource instance or collection object. The error callback is called
219
+ * with (httpResponse) argument.
220
+ *
221
+ * Class actions return empty instance (with additional properties below).
222
+ * Instance actions return promise of the action.
223
+ *
224
+ * The Resource instances and collection have these additional properties:
225
+ *
226
+ * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this
227
+ * instance or collection.
228
+ *
229
+ * On success, the promise is resolved with the same resource instance or collection object,
230
+ * updated with data from server. This makes it easy to use in
231
+ * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view
232
+ * rendering until the resource(s) are loaded.
233
+ *
234
+ * On failure, the promise is resolved with the {@link ng.$http http response} object, without
235
+ * the `resource` property.
236
+ *
237
+ * If an interceptor object was provided, the promise will instead be resolved with the value
238
+ * returned by the interceptor.
239
+ *
240
+ * - `$resolved`: `true` after first server interaction is completed (either with success or
241
+ * rejection), `false` before that. Knowing if the Resource has been resolved is useful in
242
+ * data-binding.
243
+ *
244
+ * @example
245
+ *
246
+ * # Credit card resource
247
+ *
248
+ * ```js
249
+ // Define CreditCard class
250
+ var CreditCard = $resource('/user/:userId/card/:cardId',
251
+ {userId:123, cardId:'@id'}, {
252
+ charge: {method:'POST', params:{charge:true}}
253
+ });
254
+
255
+ // We can retrieve a collection from the server
256
+ var cards = CreditCard.query(function() {
257
+ // GET: /user/123/card
258
+ // server returns: [ {id:456, number:'1234', name:'Smith'} ];
259
+
260
+ var card = cards[0];
261
+ // each item is an instance of CreditCard
262
+ expect(card instanceof CreditCard).toEqual(true);
263
+ card.name = "J. Smith";
264
+ // non GET methods are mapped onto the instances
265
+ card.$save();
266
+ // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'}
267
+ // server returns: {id:456, number:'1234', name: 'J. Smith'};
268
+
269
+ // our custom method is mapped as well.
270
+ card.$charge({amount:9.99});
271
+ // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'}
272
+ });
273
+
274
+ // we can create an instance as well
275
+ var newCard = new CreditCard({number:'0123'});
276
+ newCard.name = "Mike Smith";
277
+ newCard.$save();
278
+ // POST: /user/123/card {number:'0123', name:'Mike Smith'}
279
+ // server returns: {id:789, number:'0123', name: 'Mike Smith'};
280
+ expect(newCard.id).toEqual(789);
281
+ * ```
282
+ *
283
+ * The object returned from this function execution is a resource "class" which has "static" method
284
+ * for each action in the definition.
285
+ *
286
+ * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and
287
+ * `headers`.
288
+ * When the data is returned from the server then the object is an instance of the resource type and
289
+ * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD
290
+ * operations (create, read, update, delete) on server-side data.
291
+
292
+ ```js
293
+ var User = $resource('/user/:userId', {userId:'@id'});
294
+ User.get({userId:123}, function(user) {
295
+ user.abc = true;
296
+ user.$save();
297
+ });
298
+ ```
299
+ *
300
+ * It's worth noting that the success callback for `get`, `query` and other methods gets passed
301
+ * in the response that came from the server as well as $http header getter function, so one
302
+ * could rewrite the above example and get access to http headers as:
303
+ *
304
+ ```js
305
+ var User = $resource('/user/:userId', {userId:'@id'});
306
+ User.get({userId:123}, function(u, getResponseHeaders){
307
+ u.abc = true;
308
+ u.$save(function(u, putResponseHeaders) {
309
+ //u => saved user object
310
+ //putResponseHeaders => $http header getter
311
+ });
312
+ });
313
+ ```
314
+ *
315
+ * You can also access the raw `$http` promise via the `$promise` property on the object returned
316
+ *
317
+ ```
318
+ var User = $resource('/user/:userId', {userId:'@id'});
319
+ User.get({userId:123})
320
+ .$promise.then(function(user) {
321
+ $scope.user = user;
322
+ });
323
+ ```
324
+
325
+ * # Creating a custom 'PUT' request
326
+ * In this example we create a custom method on our resource to make a PUT request
327
+ * ```js
328
+ * var app = angular.module('app', ['ngResource', 'ngRoute']);
329
+ *
330
+ * // Some APIs expect a PUT request in the format URL/object/ID
331
+ * // Here we are creating an 'update' method
332
+ * app.factory('Notes', ['$resource', function($resource) {
333
+ * return $resource('/notes/:id', null,
334
+ * {
335
+ * 'update': { method:'PUT' }
336
+ * });
337
+ * }]);
338
+ *
339
+ * // In our controller we get the ID from the URL using ngRoute and $routeParams
340
+ * // We pass in $routeParams and our Notes factory along with $scope
341
+ * app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
342
+ function($scope, $routeParams, Notes) {
343
+ * // First get a note object from the factory
344
+ * var note = Notes.get({ id:$routeParams.id });
345
+ * $id = note.id;
346
+ *
347
+ * // Now call update passing in the ID first then the object you are updating
348
+ * Notes.update({ id:$id }, note);
349
+ *
350
+ * // This will PUT /notes/ID with the note object in the request payload
351
+ * }]);
352
+ * ```
353
+ */
354
+ angular.module('ngResource', ['ng']).
355
+ provider('$resource', function() {
356
+ var PROTOCOL_AND_DOMAIN_REGEX = /^https?:\/\/[^\/]*/;
357
+ var provider = this;
358
+
359
+ this.defaults = {
360
+ // Strip slashes by default
361
+ stripTrailingSlashes: true,
362
+
363
+ // Default actions configuration
364
+ actions: {
365
+ 'get': {method: 'GET'},
366
+ 'save': {method: 'POST'},
367
+ 'query': {method: 'GET', isArray: true},
368
+ 'remove': {method: 'DELETE'},
369
+ 'delete': {method: 'DELETE'}
370
+ }
371
+ };
372
+
373
+ this.$get = ['$http', '$q', function($http, $q) {
374
+
375
+ var noop = angular.noop,
376
+ forEach = angular.forEach,
377
+ extend = angular.extend,
378
+ copy = angular.copy,
379
+ isFunction = angular.isFunction;
380
+
381
+ /**
382
+ * We need our custom method because encodeURIComponent is too aggressive and doesn't follow
383
+ * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set
384
+ * (pchar) allowed in path segments:
385
+ * segment = *pchar
386
+ * pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
387
+ * pct-encoded = "%" HEXDIG HEXDIG
388
+ * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
389
+ * sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
390
+ * / "*" / "+" / "," / ";" / "="
391
+ */
392
+ function encodeUriSegment(val) {
393
+ return encodeUriQuery(val, true).
394
+ replace(/%26/gi, '&').
395
+ replace(/%3D/gi, '=').
396
+ replace(/%2B/gi, '+');
397
+ }
398
+
399
+
400
+ /**
401
+ * This method is intended for encoding *key* or *value* parts of query component. We need a
402
+ * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't
403
+ * have to be encoded per http://tools.ietf.org/html/rfc3986:
404
+ * query = *( pchar / "/" / "?" )
405
+ * pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
406
+ * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
407
+ * pct-encoded = "%" HEXDIG HEXDIG
408
+ * sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
409
+ * / "*" / "+" / "," / ";" / "="
410
+ */
411
+ function encodeUriQuery(val, pctEncodeSpaces) {
412
+ return encodeURIComponent(val).
413
+ replace(/%40/gi, '@').
414
+ replace(/%3A/gi, ':').
415
+ replace(/%24/g, '$').
416
+ replace(/%2C/gi, ',').
417
+ replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));
418
+ }
419
+
420
+ function Route(template, defaults) {
421
+ this.template = template;
422
+ this.defaults = extend({}, provider.defaults, defaults);
423
+ this.urlParams = {};
424
+ }
425
+
426
+ Route.prototype = {
427
+ setUrlParams: function(config, params, actionUrl) {
428
+ var self = this,
429
+ url = actionUrl || self.template,
430
+ val,
431
+ encodedVal,
432
+ protocolAndDomain = '';
433
+
434
+ var urlParams = self.urlParams = {};
435
+ forEach(url.split(/\W/), function(param) {
436
+ if (param === 'hasOwnProperty') {
437
+ throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name.");
438
+ }
439
+ if (!(new RegExp("^\\d+$").test(param)) && param &&
440
+ (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) {
441
+ urlParams[param] = true;
442
+ }
443
+ });
444
+ url = url.replace(/\\:/g, ':');
445
+ url = url.replace(PROTOCOL_AND_DOMAIN_REGEX, function(match) {
446
+ protocolAndDomain = match;
447
+ return '';
448
+ });
449
+
450
+ params = params || {};
451
+ forEach(self.urlParams, function(_, urlParam) {
452
+ val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam];
453
+ if (angular.isDefined(val) && val !== null) {
454
+ encodedVal = encodeUriSegment(val);
455
+ url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), function(match, p1) {
456
+ return encodedVal + p1;
457
+ });
458
+ } else {
459
+ url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match,
460
+ leadingSlashes, tail) {
461
+ if (tail.charAt(0) == '/') {
462
+ return tail;
463
+ } else {
464
+ return leadingSlashes + tail;
465
+ }
466
+ });
467
+ }
468
+ });
469
+
470
+ // strip trailing slashes and set the url (unless this behavior is specifically disabled)
471
+ if (self.defaults.stripTrailingSlashes) {
472
+ url = url.replace(/\/+$/, '') || '/';
473
+ }
474
+
475
+ // then replace collapse `/.` if found in the last URL path segment before the query
476
+ // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x`
477
+ url = url.replace(/\/\.(?=\w+($|\?))/, '.');
478
+ // replace escaped `/\.` with `/.`
479
+ config.url = protocolAndDomain + url.replace(/\/\\\./, '/.');
480
+
481
+
482
+ // set params - delegate param encoding to $http
483
+ forEach(params, function(value, key) {
484
+ if (!self.urlParams[key]) {
485
+ config.params = config.params || {};
486
+ config.params[key] = value;
487
+ }
488
+ });
489
+ }
490
+ };
491
+
492
+
493
+ function resourceFactory(url, paramDefaults, actions, options) {
494
+ var route = new Route(url, options);
495
+
496
+ actions = extend({}, provider.defaults.actions, actions);
497
+
498
+ function extractParams(data, actionParams) {
499
+ var ids = {};
500
+ actionParams = extend({}, paramDefaults, actionParams);
501
+ forEach(actionParams, function(value, key) {
502
+ if (isFunction(value)) { value = value(); }
503
+ ids[key] = value && value.charAt && value.charAt(0) == '@' ?
504
+ lookupDottedPath(data, value.substr(1)) : value;
505
+ });
506
+ return ids;
507
+ }
508
+
509
+ function defaultResponseInterceptor(response) {
510
+ return response.resource;
511
+ }
512
+
513
+ function Resource(value) {
514
+ shallowClearAndCopy(value || {}, this);
515
+ }
516
+
517
+ Resource.prototype.toJSON = function() {
518
+ var data = extend({}, this);
519
+ delete data.$promise;
520
+ delete data.$resolved;
521
+ return data;
522
+ };
523
+
524
+ forEach(actions, function(action, name) {
525
+ var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method);
526
+
527
+ Resource[name] = function(a1, a2, a3, a4) {
528
+ var params = {}, data, success, error;
529
+
530
+ /* jshint -W086 */ /* (purposefully fall through case statements) */
531
+ switch (arguments.length) {
532
+ case 4:
533
+ error = a4;
534
+ success = a3;
535
+ //fallthrough
536
+ case 3:
537
+ case 2:
538
+ if (isFunction(a2)) {
539
+ if (isFunction(a1)) {
540
+ success = a1;
541
+ error = a2;
542
+ break;
543
+ }
544
+
545
+ success = a2;
546
+ error = a3;
547
+ //fallthrough
548
+ } else {
549
+ params = a1;
550
+ data = a2;
551
+ success = a3;
552
+ break;
553
+ }
554
+ case 1:
555
+ if (isFunction(a1)) success = a1;
556
+ else if (hasBody) data = a1;
557
+ else params = a1;
558
+ break;
559
+ case 0: break;
560
+ default:
561
+ throw $resourceMinErr('badargs',
562
+ "Expected up to 4 arguments [params, data, success, error], got {0} arguments",
563
+ arguments.length);
564
+ }
565
+ /* jshint +W086 */ /* (purposefully fall through case statements) */
566
+
567
+ var isInstanceCall = this instanceof Resource;
568
+ var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data));
569
+ var httpConfig = {};
570
+ var responseInterceptor = action.interceptor && action.interceptor.response ||
571
+ defaultResponseInterceptor;
572
+ var responseErrorInterceptor = action.interceptor && action.interceptor.responseError ||
573
+ undefined;
574
+
575
+ forEach(action, function(value, key) {
576
+ if (key != 'params' && key != 'isArray' && key != 'interceptor') {
577
+ httpConfig[key] = copy(value);
578
+ }
579
+ });
580
+
581
+ if (hasBody) httpConfig.data = data;
582
+ route.setUrlParams(httpConfig,
583
+ extend({}, extractParams(data, action.params || {}), params),
584
+ action.url);
585
+
586
+ var promise = $http(httpConfig).then(function(response) {
587
+ var data = response.data,
588
+ promise = value.$promise;
589
+
590
+ if (data) {
591
+ // Need to convert action.isArray to boolean in case it is undefined
592
+ // jshint -W018
593
+ if (angular.isArray(data) !== (!!action.isArray)) {
594
+ throw $resourceMinErr('badcfg',
595
+ 'Error in resource configuration for action `{0}`. Expected response to ' +
596
+ 'contain an {1} but got an {2} (Request: {3} {4})', name, action.isArray ? 'array' : 'object',
597
+ angular.isArray(data) ? 'array' : 'object', httpConfig.method, httpConfig.url);
598
+ }
599
+ // jshint +W018
600
+ if (action.isArray) {
601
+ value.length = 0;
602
+ forEach(data, function(item) {
603
+ if (typeof item === "object") {
604
+ value.push(new Resource(item));
605
+ } else {
606
+ // Valid JSON values may be string literals, and these should not be converted
607
+ // into objects. These items will not have access to the Resource prototype
608
+ // methods, but unfortunately there
609
+ value.push(item);
610
+ }
611
+ });
612
+ } else {
613
+ shallowClearAndCopy(data, value);
614
+ value.$promise = promise;
615
+ }
616
+ }
617
+
618
+ value.$resolved = true;
619
+
620
+ response.resource = value;
621
+
622
+ return response;
623
+ }, function(response) {
624
+ value.$resolved = true;
625
+
626
+ (error || noop)(response);
627
+
628
+ return $q.reject(response);
629
+ });
630
+
631
+ promise = promise.then(
632
+ function(response) {
633
+ var value = responseInterceptor(response);
634
+ (success || noop)(value, response.headers);
635
+ return value;
636
+ },
637
+ responseErrorInterceptor);
638
+
639
+ if (!isInstanceCall) {
640
+ // we are creating instance / collection
641
+ // - set the initial promise
642
+ // - return the instance / collection
643
+ value.$promise = promise;
644
+ value.$resolved = false;
645
+
646
+ return value;
647
+ }
648
+
649
+ // instance call
650
+ return promise;
651
+ };
652
+
653
+
654
+ Resource.prototype['$' + name] = function(params, success, error) {
655
+ if (isFunction(params)) {
656
+ error = success; success = params; params = {};
657
+ }
658
+ var result = Resource[name].call(this, params, this, success, error);
659
+ return result.$promise || result;
660
+ };
661
+ });
662
+
663
+ Resource.bind = function(additionalParamDefaults) {
664
+ return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions);
665
+ };
666
+
667
+ return Resource;
668
+ }
669
+
670
+ return resourceFactory;
671
+ }];
672
+ });
673
+
674
+
675
+ })(window, window.angular);