angularjs-rails 1.0.8 → 1.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (303) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/angularjs-rails/version.rb +1 -1
  4. data/vendor/assets/javascripts/angular-animate.js +677 -0
  5. data/vendor/assets/javascripts/angular-bootstrap-prettify.js +4 -14
  6. data/vendor/assets/javascripts/angular-bootstrap.js +1 -1
  7. data/vendor/assets/javascripts/angular-cookies.js +2 -14
  8. data/vendor/assets/javascripts/angular-loader.js +38 -4
  9. data/vendor/assets/javascripts/angular-mocks.js +225 -78
  10. data/vendor/assets/javascripts/angular-resource.js +181 -90
  11. data/vendor/assets/javascripts/angular-route.js +860 -0
  12. data/vendor/assets/javascripts/angular-sanitize.js +63 -61
  13. data/vendor/assets/javascripts/angular-scenario.js +21160 -18250
  14. data/vendor/assets/javascripts/angular-touch.js +536 -0
  15. data/vendor/assets/javascripts/angular.js +7827 -5083
  16. metadata +8 -292
  17. data/vendor/assets/javascripts/i18n/angular-locale_af-na.js +0 -98
  18. data/vendor/assets/javascripts/i18n/angular-locale_af-za.js +0 -98
  19. data/vendor/assets/javascripts/i18n/angular-locale_af.js +0 -98
  20. data/vendor/assets/javascripts/i18n/angular-locale_am-et.js +0 -98
  21. data/vendor/assets/javascripts/i18n/angular-locale_am.js +0 -98
  22. data/vendor/assets/javascripts/i18n/angular-locale_ar-001.js +0 -98
  23. data/vendor/assets/javascripts/i18n/angular-locale_ar-ae.js +0 -98
  24. data/vendor/assets/javascripts/i18n/angular-locale_ar-bh.js +0 -98
  25. data/vendor/assets/javascripts/i18n/angular-locale_ar-dz.js +0 -98
  26. data/vendor/assets/javascripts/i18n/angular-locale_ar-eg.js +0 -98
  27. data/vendor/assets/javascripts/i18n/angular-locale_ar-iq.js +0 -98
  28. data/vendor/assets/javascripts/i18n/angular-locale_ar-jo.js +0 -98
  29. data/vendor/assets/javascripts/i18n/angular-locale_ar-kw.js +0 -98
  30. data/vendor/assets/javascripts/i18n/angular-locale_ar-lb.js +0 -98
  31. data/vendor/assets/javascripts/i18n/angular-locale_ar-ly.js +0 -98
  32. data/vendor/assets/javascripts/i18n/angular-locale_ar-ma.js +0 -98
  33. data/vendor/assets/javascripts/i18n/angular-locale_ar-om.js +0 -98
  34. data/vendor/assets/javascripts/i18n/angular-locale_ar-qa.js +0 -98
  35. data/vendor/assets/javascripts/i18n/angular-locale_ar-sa.js +0 -98
  36. data/vendor/assets/javascripts/i18n/angular-locale_ar-sd.js +0 -98
  37. data/vendor/assets/javascripts/i18n/angular-locale_ar-sy.js +0 -98
  38. data/vendor/assets/javascripts/i18n/angular-locale_ar-tn.js +0 -98
  39. data/vendor/assets/javascripts/i18n/angular-locale_ar-ye.js +0 -98
  40. data/vendor/assets/javascripts/i18n/angular-locale_ar.js +0 -98
  41. data/vendor/assets/javascripts/i18n/angular-locale_bg-bg.js +0 -98
  42. data/vendor/assets/javascripts/i18n/angular-locale_bg.js +0 -98
  43. data/vendor/assets/javascripts/i18n/angular-locale_bn-bd.js +0 -98
  44. data/vendor/assets/javascripts/i18n/angular-locale_bn-in.js +0 -98
  45. data/vendor/assets/javascripts/i18n/angular-locale_bn.js +0 -98
  46. data/vendor/assets/javascripts/i18n/angular-locale_ca-ad.js +0 -98
  47. data/vendor/assets/javascripts/i18n/angular-locale_ca-es.js +0 -98
  48. data/vendor/assets/javascripts/i18n/angular-locale_ca.js +0 -98
  49. data/vendor/assets/javascripts/i18n/angular-locale_chr.js +0 -4
  50. data/vendor/assets/javascripts/i18n/angular-locale_cs-cz.js +0 -98
  51. data/vendor/assets/javascripts/i18n/angular-locale_cs.js +0 -98
  52. data/vendor/assets/javascripts/i18n/angular-locale_cy.js +0 -4
  53. data/vendor/assets/javascripts/i18n/angular-locale_da-dk.js +0 -98
  54. data/vendor/assets/javascripts/i18n/angular-locale_da.js +0 -98
  55. data/vendor/assets/javascripts/i18n/angular-locale_de-at.js +0 -98
  56. data/vendor/assets/javascripts/i18n/angular-locale_de-be.js +0 -98
  57. data/vendor/assets/javascripts/i18n/angular-locale_de-ch.js +0 -98
  58. data/vendor/assets/javascripts/i18n/angular-locale_de-de.js +0 -98
  59. data/vendor/assets/javascripts/i18n/angular-locale_de-li.js +0 -98
  60. data/vendor/assets/javascripts/i18n/angular-locale_de-lu.js +0 -98
  61. data/vendor/assets/javascripts/i18n/angular-locale_de.js +0 -98
  62. data/vendor/assets/javascripts/i18n/angular-locale_el-cy.js +0 -98
  63. data/vendor/assets/javascripts/i18n/angular-locale_el-gr.js +0 -98
  64. data/vendor/assets/javascripts/i18n/angular-locale_el-polyton.js +0 -4
  65. data/vendor/assets/javascripts/i18n/angular-locale_el.js +0 -98
  66. data/vendor/assets/javascripts/i18n/angular-locale_en-as.js +0 -98
  67. data/vendor/assets/javascripts/i18n/angular-locale_en-au.js +0 -98
  68. data/vendor/assets/javascripts/i18n/angular-locale_en-bb.js +0 -98
  69. data/vendor/assets/javascripts/i18n/angular-locale_en-be.js +0 -98
  70. data/vendor/assets/javascripts/i18n/angular-locale_en-bm.js +0 -98
  71. data/vendor/assets/javascripts/i18n/angular-locale_en-bw.js +0 -98
  72. data/vendor/assets/javascripts/i18n/angular-locale_en-bz.js +0 -98
  73. data/vendor/assets/javascripts/i18n/angular-locale_en-ca.js +0 -98
  74. data/vendor/assets/javascripts/i18n/angular-locale_en-dsrt-us.js +0 -98
  75. data/vendor/assets/javascripts/i18n/angular-locale_en-dsrt.js +0 -98
  76. data/vendor/assets/javascripts/i18n/angular-locale_en-fm.js +0 -98
  77. data/vendor/assets/javascripts/i18n/angular-locale_en-gb.js +0 -98
  78. data/vendor/assets/javascripts/i18n/angular-locale_en-gu.js +0 -98
  79. data/vendor/assets/javascripts/i18n/angular-locale_en-gy.js +0 -98
  80. data/vendor/assets/javascripts/i18n/angular-locale_en-hk.js +0 -98
  81. data/vendor/assets/javascripts/i18n/angular-locale_en-ie.js +0 -98
  82. data/vendor/assets/javascripts/i18n/angular-locale_en-in.js +0 -98
  83. data/vendor/assets/javascripts/i18n/angular-locale_en-iso.js +0 -98
  84. data/vendor/assets/javascripts/i18n/angular-locale_en-jm.js +0 -98
  85. data/vendor/assets/javascripts/i18n/angular-locale_en-mh.js +0 -98
  86. data/vendor/assets/javascripts/i18n/angular-locale_en-mp.js +0 -98
  87. data/vendor/assets/javascripts/i18n/angular-locale_en-mt.js +0 -98
  88. data/vendor/assets/javascripts/i18n/angular-locale_en-mu.js +0 -98
  89. data/vendor/assets/javascripts/i18n/angular-locale_en-na.js +0 -98
  90. data/vendor/assets/javascripts/i18n/angular-locale_en-nz.js +0 -98
  91. data/vendor/assets/javascripts/i18n/angular-locale_en-ph.js +0 -98
  92. data/vendor/assets/javascripts/i18n/angular-locale_en-pk.js +0 -98
  93. data/vendor/assets/javascripts/i18n/angular-locale_en-pr.js +0 -98
  94. data/vendor/assets/javascripts/i18n/angular-locale_en-pw.js +0 -98
  95. data/vendor/assets/javascripts/i18n/angular-locale_en-sg.js +0 -98
  96. data/vendor/assets/javascripts/i18n/angular-locale_en-tc.js +0 -98
  97. data/vendor/assets/javascripts/i18n/angular-locale_en-tt.js +0 -98
  98. data/vendor/assets/javascripts/i18n/angular-locale_en-um.js +0 -98
  99. data/vendor/assets/javascripts/i18n/angular-locale_en-us.js +0 -98
  100. data/vendor/assets/javascripts/i18n/angular-locale_en-vg.js +0 -98
  101. data/vendor/assets/javascripts/i18n/angular-locale_en-vi.js +0 -98
  102. data/vendor/assets/javascripts/i18n/angular-locale_en-za.js +0 -98
  103. data/vendor/assets/javascripts/i18n/angular-locale_en-zw.js +0 -98
  104. data/vendor/assets/javascripts/i18n/angular-locale_en-zz.js +0 -4
  105. data/vendor/assets/javascripts/i18n/angular-locale_en.js +0 -98
  106. data/vendor/assets/javascripts/i18n/angular-locale_es-419.js +0 -98
  107. data/vendor/assets/javascripts/i18n/angular-locale_es-ar.js +0 -98
  108. data/vendor/assets/javascripts/i18n/angular-locale_es-bo.js +0 -98
  109. data/vendor/assets/javascripts/i18n/angular-locale_es-cl.js +0 -98
  110. data/vendor/assets/javascripts/i18n/angular-locale_es-co.js +0 -98
  111. data/vendor/assets/javascripts/i18n/angular-locale_es-cr.js +0 -98
  112. data/vendor/assets/javascripts/i18n/angular-locale_es-do.js +0 -98
  113. data/vendor/assets/javascripts/i18n/angular-locale_es-ea.js +0 -98
  114. data/vendor/assets/javascripts/i18n/angular-locale_es-ec.js +0 -98
  115. data/vendor/assets/javascripts/i18n/angular-locale_es-es.js +0 -98
  116. data/vendor/assets/javascripts/i18n/angular-locale_es-gq.js +0 -98
  117. data/vendor/assets/javascripts/i18n/angular-locale_es-gt.js +0 -98
  118. data/vendor/assets/javascripts/i18n/angular-locale_es-hn.js +0 -98
  119. data/vendor/assets/javascripts/i18n/angular-locale_es-ic.js +0 -98
  120. data/vendor/assets/javascripts/i18n/angular-locale_es-mx.js +0 -98
  121. data/vendor/assets/javascripts/i18n/angular-locale_es-ni.js +0 -98
  122. data/vendor/assets/javascripts/i18n/angular-locale_es-pa.js +0 -98
  123. data/vendor/assets/javascripts/i18n/angular-locale_es-pe.js +0 -98
  124. data/vendor/assets/javascripts/i18n/angular-locale_es-pr.js +0 -98
  125. data/vendor/assets/javascripts/i18n/angular-locale_es-py.js +0 -98
  126. data/vendor/assets/javascripts/i18n/angular-locale_es-sv.js +0 -98
  127. data/vendor/assets/javascripts/i18n/angular-locale_es-us.js +0 -98
  128. data/vendor/assets/javascripts/i18n/angular-locale_es-uy.js +0 -98
  129. data/vendor/assets/javascripts/i18n/angular-locale_es-ve.js +0 -98
  130. data/vendor/assets/javascripts/i18n/angular-locale_es.js +0 -98
  131. data/vendor/assets/javascripts/i18n/angular-locale_et-ee.js +0 -98
  132. data/vendor/assets/javascripts/i18n/angular-locale_et.js +0 -98
  133. data/vendor/assets/javascripts/i18n/angular-locale_eu-es.js +0 -98
  134. data/vendor/assets/javascripts/i18n/angular-locale_eu.js +0 -98
  135. data/vendor/assets/javascripts/i18n/angular-locale_fa-af.js +0 -98
  136. data/vendor/assets/javascripts/i18n/angular-locale_fa-ir.js +0 -98
  137. data/vendor/assets/javascripts/i18n/angular-locale_fa.js +0 -98
  138. data/vendor/assets/javascripts/i18n/angular-locale_fi-fi.js +0 -98
  139. data/vendor/assets/javascripts/i18n/angular-locale_fi.js +0 -98
  140. data/vendor/assets/javascripts/i18n/angular-locale_fil-ph.js +0 -98
  141. data/vendor/assets/javascripts/i18n/angular-locale_fil.js +0 -98
  142. data/vendor/assets/javascripts/i18n/angular-locale_fr-be.js +0 -98
  143. data/vendor/assets/javascripts/i18n/angular-locale_fr-bf.js +0 -98
  144. data/vendor/assets/javascripts/i18n/angular-locale_fr-bi.js +0 -98
  145. data/vendor/assets/javascripts/i18n/angular-locale_fr-bj.js +0 -98
  146. data/vendor/assets/javascripts/i18n/angular-locale_fr-bl.js +0 -98
  147. data/vendor/assets/javascripts/i18n/angular-locale_fr-ca.js +0 -98
  148. data/vendor/assets/javascripts/i18n/angular-locale_fr-cd.js +0 -98
  149. data/vendor/assets/javascripts/i18n/angular-locale_fr-cf.js +0 -98
  150. data/vendor/assets/javascripts/i18n/angular-locale_fr-cg.js +0 -98
  151. data/vendor/assets/javascripts/i18n/angular-locale_fr-ch.js +0 -98
  152. data/vendor/assets/javascripts/i18n/angular-locale_fr-ci.js +0 -98
  153. data/vendor/assets/javascripts/i18n/angular-locale_fr-cm.js +0 -98
  154. data/vendor/assets/javascripts/i18n/angular-locale_fr-dj.js +0 -98
  155. data/vendor/assets/javascripts/i18n/angular-locale_fr-fr.js +0 -98
  156. data/vendor/assets/javascripts/i18n/angular-locale_fr-ga.js +0 -98
  157. data/vendor/assets/javascripts/i18n/angular-locale_fr-gf.js +0 -98
  158. data/vendor/assets/javascripts/i18n/angular-locale_fr-gn.js +0 -98
  159. data/vendor/assets/javascripts/i18n/angular-locale_fr-gp.js +0 -98
  160. data/vendor/assets/javascripts/i18n/angular-locale_fr-gq.js +0 -98
  161. data/vendor/assets/javascripts/i18n/angular-locale_fr-km.js +0 -98
  162. data/vendor/assets/javascripts/i18n/angular-locale_fr-lu.js +0 -98
  163. data/vendor/assets/javascripts/i18n/angular-locale_fr-mc.js +0 -98
  164. data/vendor/assets/javascripts/i18n/angular-locale_fr-mf.js +0 -98
  165. data/vendor/assets/javascripts/i18n/angular-locale_fr-mg.js +0 -98
  166. data/vendor/assets/javascripts/i18n/angular-locale_fr-ml.js +0 -98
  167. data/vendor/assets/javascripts/i18n/angular-locale_fr-mq.js +0 -98
  168. data/vendor/assets/javascripts/i18n/angular-locale_fr-ne.js +0 -98
  169. data/vendor/assets/javascripts/i18n/angular-locale_fr-re.js +0 -98
  170. data/vendor/assets/javascripts/i18n/angular-locale_fr-rw.js +0 -98
  171. data/vendor/assets/javascripts/i18n/angular-locale_fr-sn.js +0 -98
  172. data/vendor/assets/javascripts/i18n/angular-locale_fr-td.js +0 -98
  173. data/vendor/assets/javascripts/i18n/angular-locale_fr-tg.js +0 -98
  174. data/vendor/assets/javascripts/i18n/angular-locale_fr-yt.js +0 -98
  175. data/vendor/assets/javascripts/i18n/angular-locale_fr.js +0 -98
  176. data/vendor/assets/javascripts/i18n/angular-locale_gl-es.js +0 -98
  177. data/vendor/assets/javascripts/i18n/angular-locale_gl.js +0 -98
  178. data/vendor/assets/javascripts/i18n/angular-locale_gsw-ch.js +0 -98
  179. data/vendor/assets/javascripts/i18n/angular-locale_gsw.js +0 -98
  180. data/vendor/assets/javascripts/i18n/angular-locale_gu-in.js +0 -98
  181. data/vendor/assets/javascripts/i18n/angular-locale_gu.js +0 -98
  182. data/vendor/assets/javascripts/i18n/angular-locale_haw.js +0 -4
  183. data/vendor/assets/javascripts/i18n/angular-locale_he-il.js +0 -98
  184. data/vendor/assets/javascripts/i18n/angular-locale_he.js +0 -98
  185. data/vendor/assets/javascripts/i18n/angular-locale_hi-in.js +0 -98
  186. data/vendor/assets/javascripts/i18n/angular-locale_hi.js +0 -98
  187. data/vendor/assets/javascripts/i18n/angular-locale_hr-hr.js +0 -98
  188. data/vendor/assets/javascripts/i18n/angular-locale_hr.js +0 -98
  189. data/vendor/assets/javascripts/i18n/angular-locale_hu-hu.js +0 -98
  190. data/vendor/assets/javascripts/i18n/angular-locale_hu.js +0 -98
  191. data/vendor/assets/javascripts/i18n/angular-locale_id-id.js +0 -98
  192. data/vendor/assets/javascripts/i18n/angular-locale_id.js +0 -98
  193. data/vendor/assets/javascripts/i18n/angular-locale_in.js +0 -98
  194. data/vendor/assets/javascripts/i18n/angular-locale_is-is.js +0 -98
  195. data/vendor/assets/javascripts/i18n/angular-locale_is.js +0 -98
  196. data/vendor/assets/javascripts/i18n/angular-locale_it-ch.js +0 -98
  197. data/vendor/assets/javascripts/i18n/angular-locale_it-it.js +0 -98
  198. data/vendor/assets/javascripts/i18n/angular-locale_it-sm.js +0 -98
  199. data/vendor/assets/javascripts/i18n/angular-locale_it.js +0 -98
  200. data/vendor/assets/javascripts/i18n/angular-locale_iw.js +0 -98
  201. data/vendor/assets/javascripts/i18n/angular-locale_ja-jp.js +0 -98
  202. data/vendor/assets/javascripts/i18n/angular-locale_ja.js +0 -98
  203. data/vendor/assets/javascripts/i18n/angular-locale_kn-in.js +0 -98
  204. data/vendor/assets/javascripts/i18n/angular-locale_kn.js +0 -98
  205. data/vendor/assets/javascripts/i18n/angular-locale_ko-kr.js +0 -98
  206. data/vendor/assets/javascripts/i18n/angular-locale_ko.js +0 -98
  207. data/vendor/assets/javascripts/i18n/angular-locale_ln-cd.js +0 -98
  208. data/vendor/assets/javascripts/i18n/angular-locale_ln-cg.js +0 -98
  209. data/vendor/assets/javascripts/i18n/angular-locale_ln.js +0 -98
  210. data/vendor/assets/javascripts/i18n/angular-locale_lt-lt.js +0 -98
  211. data/vendor/assets/javascripts/i18n/angular-locale_lt.js +0 -98
  212. data/vendor/assets/javascripts/i18n/angular-locale_lv-lv.js +0 -98
  213. data/vendor/assets/javascripts/i18n/angular-locale_lv.js +0 -98
  214. data/vendor/assets/javascripts/i18n/angular-locale_ml-in.js +0 -98
  215. data/vendor/assets/javascripts/i18n/angular-locale_ml.js +0 -98
  216. data/vendor/assets/javascripts/i18n/angular-locale_mo.js +0 -4
  217. data/vendor/assets/javascripts/i18n/angular-locale_mr-in.js +0 -98
  218. data/vendor/assets/javascripts/i18n/angular-locale_mr.js +0 -98
  219. data/vendor/assets/javascripts/i18n/angular-locale_ms-bn.js +0 -98
  220. data/vendor/assets/javascripts/i18n/angular-locale_ms-my.js +0 -98
  221. data/vendor/assets/javascripts/i18n/angular-locale_ms.js +0 -98
  222. data/vendor/assets/javascripts/i18n/angular-locale_mt-mt.js +0 -98
  223. data/vendor/assets/javascripts/i18n/angular-locale_mt.js +0 -98
  224. data/vendor/assets/javascripts/i18n/angular-locale_nl-aw.js +0 -98
  225. data/vendor/assets/javascripts/i18n/angular-locale_nl-be.js +0 -98
  226. data/vendor/assets/javascripts/i18n/angular-locale_nl-cw.js +0 -98
  227. data/vendor/assets/javascripts/i18n/angular-locale_nl-nl.js +0 -98
  228. data/vendor/assets/javascripts/i18n/angular-locale_nl-sx.js +0 -98
  229. data/vendor/assets/javascripts/i18n/angular-locale_nl.js +0 -98
  230. data/vendor/assets/javascripts/i18n/angular-locale_no.js +0 -98
  231. data/vendor/assets/javascripts/i18n/angular-locale_or-in.js +0 -98
  232. data/vendor/assets/javascripts/i18n/angular-locale_or.js +0 -98
  233. data/vendor/assets/javascripts/i18n/angular-locale_pl-pl.js +0 -98
  234. data/vendor/assets/javascripts/i18n/angular-locale_pl.js +0 -98
  235. data/vendor/assets/javascripts/i18n/angular-locale_pt-ao.js +0 -98
  236. data/vendor/assets/javascripts/i18n/angular-locale_pt-br.js +0 -98
  237. data/vendor/assets/javascripts/i18n/angular-locale_pt-gw.js +0 -98
  238. data/vendor/assets/javascripts/i18n/angular-locale_pt-mz.js +0 -98
  239. data/vendor/assets/javascripts/i18n/angular-locale_pt-pt.js +0 -98
  240. data/vendor/assets/javascripts/i18n/angular-locale_pt-st.js +0 -98
  241. data/vendor/assets/javascripts/i18n/angular-locale_pt.js +0 -98
  242. data/vendor/assets/javascripts/i18n/angular-locale_ro-md.js +0 -98
  243. data/vendor/assets/javascripts/i18n/angular-locale_ro-ro.js +0 -98
  244. data/vendor/assets/javascripts/i18n/angular-locale_ro.js +0 -98
  245. data/vendor/assets/javascripts/i18n/angular-locale_ru-md.js +0 -98
  246. data/vendor/assets/javascripts/i18n/angular-locale_ru-ru.js +0 -98
  247. data/vendor/assets/javascripts/i18n/angular-locale_ru-ua.js +0 -98
  248. data/vendor/assets/javascripts/i18n/angular-locale_ru.js +0 -98
  249. data/vendor/assets/javascripts/i18n/angular-locale_sk-sk.js +0 -98
  250. data/vendor/assets/javascripts/i18n/angular-locale_sk.js +0 -98
  251. data/vendor/assets/javascripts/i18n/angular-locale_sl-si.js +0 -98
  252. data/vendor/assets/javascripts/i18n/angular-locale_sl.js +0 -98
  253. data/vendor/assets/javascripts/i18n/angular-locale_sq-al.js +0 -98
  254. data/vendor/assets/javascripts/i18n/angular-locale_sq.js +0 -98
  255. data/vendor/assets/javascripts/i18n/angular-locale_sr-cyrl-ba.js +0 -98
  256. data/vendor/assets/javascripts/i18n/angular-locale_sr-cyrl-me.js +0 -98
  257. data/vendor/assets/javascripts/i18n/angular-locale_sr-cyrl-rs.js +0 -98
  258. data/vendor/assets/javascripts/i18n/angular-locale_sr-cyrl.js +0 -98
  259. data/vendor/assets/javascripts/i18n/angular-locale_sr-latn-ba.js +0 -98
  260. data/vendor/assets/javascripts/i18n/angular-locale_sr-latn-me.js +0 -98
  261. data/vendor/assets/javascripts/i18n/angular-locale_sr-latn-rs.js +0 -98
  262. data/vendor/assets/javascripts/i18n/angular-locale_sr-latn.js +0 -98
  263. data/vendor/assets/javascripts/i18n/angular-locale_sr-rs.js +0 -4
  264. data/vendor/assets/javascripts/i18n/angular-locale_sr.js +0 -98
  265. data/vendor/assets/javascripts/i18n/angular-locale_sv-fi.js +0 -98
  266. data/vendor/assets/javascripts/i18n/angular-locale_sv-se.js +0 -98
  267. data/vendor/assets/javascripts/i18n/angular-locale_sv.js +0 -98
  268. data/vendor/assets/javascripts/i18n/angular-locale_sw-ke.js +0 -98
  269. data/vendor/assets/javascripts/i18n/angular-locale_sw-tz.js +0 -98
  270. data/vendor/assets/javascripts/i18n/angular-locale_sw.js +0 -98
  271. data/vendor/assets/javascripts/i18n/angular-locale_ta-in.js +0 -98
  272. data/vendor/assets/javascripts/i18n/angular-locale_ta-lk.js +0 -98
  273. data/vendor/assets/javascripts/i18n/angular-locale_ta.js +0 -98
  274. data/vendor/assets/javascripts/i18n/angular-locale_te-in.js +0 -98
  275. data/vendor/assets/javascripts/i18n/angular-locale_te.js +0 -98
  276. data/vendor/assets/javascripts/i18n/angular-locale_th-th.js +0 -98
  277. data/vendor/assets/javascripts/i18n/angular-locale_th.js +0 -98
  278. data/vendor/assets/javascripts/i18n/angular-locale_tl-ph.js +0 -4
  279. data/vendor/assets/javascripts/i18n/angular-locale_tl.js +0 -98
  280. data/vendor/assets/javascripts/i18n/angular-locale_tr-tr.js +0 -98
  281. data/vendor/assets/javascripts/i18n/angular-locale_tr.js +0 -98
  282. data/vendor/assets/javascripts/i18n/angular-locale_uk-ua.js +0 -98
  283. data/vendor/assets/javascripts/i18n/angular-locale_uk.js +0 -98
  284. data/vendor/assets/javascripts/i18n/angular-locale_ur-in.js +0 -98
  285. data/vendor/assets/javascripts/i18n/angular-locale_ur-pk.js +0 -98
  286. data/vendor/assets/javascripts/i18n/angular-locale_ur.js +0 -98
  287. data/vendor/assets/javascripts/i18n/angular-locale_vi-vn.js +0 -98
  288. data/vendor/assets/javascripts/i18n/angular-locale_vi.js +0 -98
  289. data/vendor/assets/javascripts/i18n/angular-locale_zh-cn.js +0 -98
  290. data/vendor/assets/javascripts/i18n/angular-locale_zh-hans-cn.js +0 -98
  291. data/vendor/assets/javascripts/i18n/angular-locale_zh-hans-hk.js +0 -98
  292. data/vendor/assets/javascripts/i18n/angular-locale_zh-hans-mo.js +0 -98
  293. data/vendor/assets/javascripts/i18n/angular-locale_zh-hans-sg.js +0 -98
  294. data/vendor/assets/javascripts/i18n/angular-locale_zh-hans.js +0 -98
  295. data/vendor/assets/javascripts/i18n/angular-locale_zh-hant-hk.js +0 -98
  296. data/vendor/assets/javascripts/i18n/angular-locale_zh-hant-mo.js +0 -98
  297. data/vendor/assets/javascripts/i18n/angular-locale_zh-hant-tw.js +0 -98
  298. data/vendor/assets/javascripts/i18n/angular-locale_zh-hant.js +0 -98
  299. data/vendor/assets/javascripts/i18n/angular-locale_zh-hk.js +0 -98
  300. data/vendor/assets/javascripts/i18n/angular-locale_zh-tw.js +0 -98
  301. data/vendor/assets/javascripts/i18n/angular-locale_zh.js +0 -98
  302. data/vendor/assets/javascripts/i18n/angular-locale_zu-za.js +0 -98
  303. data/vendor/assets/javascripts/i18n/angular-locale_zu.js +0 -98
@@ -0,0 +1,536 @@
1
+ /**
2
+ * @license AngularJS v1.2.0rc1
3
+ * (c) 2010-2012 Google, Inc. http://angularjs.org
4
+ * License: MIT
5
+ */
6
+ (function(window, angular, undefined) {'use strict';
7
+
8
+ /**
9
+ * @ngdoc overview
10
+ * @name ngTouch
11
+ * @description
12
+ * Touch events and other mobile helpers.
13
+ * Based on jQuery Mobile touch event handling (jquerymobile.com)
14
+ */
15
+
16
+ // define ngTouch module
17
+ var ngTouch = angular.module('ngTouch', []);
18
+
19
+ /**
20
+ * @ngdoc object
21
+ * @name ngTouch.$swipe
22
+ *
23
+ * @description
24
+ * The `$swipe` service is a service that abstracts the messier details of hold-and-drag swipe
25
+ * behavior, to make implementing swipe-related directives more convenient.
26
+ *
27
+ * It is used by the `ngSwipeLeft` and `ngSwipeRight` directives in `ngTouch`, and by
28
+ * `ngCarousel` in a separate component.
29
+ *
30
+ * # Usage
31
+ * The `$swipe` service is an object with a single method: `bind`. `bind` takes an element
32
+ * which is to be watched for swipes, and an object with four handler functions. See the
33
+ * documentation for `bind` below.
34
+ */
35
+
36
+ ngTouch.factory('$swipe', [function() {
37
+ // The total distance in any direction before we make the call on swipe vs. scroll.
38
+ var MOVE_BUFFER_RADIUS = 10;
39
+
40
+ function getCoordinates(event) {
41
+ var touches = event.touches && event.touches.length ? event.touches : [event];
42
+ var e = (event.changedTouches && event.changedTouches[0]) ||
43
+ (event.originalEvent && event.originalEvent.changedTouches &&
44
+ event.originalEvent.changedTouches[0]) ||
45
+ touches[0].originalEvent || touches[0];
46
+
47
+ return {
48
+ x: e.clientX,
49
+ y: e.clientY
50
+ };
51
+ }
52
+
53
+ return {
54
+ /**
55
+ * @ngdoc method
56
+ * @name ngTouch.$swipe#bind
57
+ * @methodOf ngTouch.$swipe
58
+ *
59
+ * @description
60
+ * The main method of `$swipe`. It takes an element to be watched for swipe motions, and an
61
+ * object containing event handlers.
62
+ *
63
+ * The four events are `start`, `move`, `end`, and `cancel`. `start`, `move`, and `end`
64
+ * receive as a parameter a coordinates object of the form `{ x: 150, y: 310 }`.
65
+ *
66
+ * `start` is called on either `mousedown` or `touchstart`. After this event, `$swipe` is
67
+ * watching for `touchmove` or `mousemove` events. These events are ignored until the total
68
+ * distance moved in either dimension exceeds a small threshold.
69
+ *
70
+ * Once this threshold is exceeded, either the horizontal or vertical delta is greater.
71
+ * - If the horizontal distance is greater, this is a swipe and `move` and `end` events follow.
72
+ * - If the vertical distance is greater, this is a scroll, and we let the browser take over.
73
+ * A `cancel` event is sent.
74
+ *
75
+ * `move` is called on `mousemove` and `touchmove` after the above logic has determined that
76
+ * a swipe is in progress.
77
+ *
78
+ * `end` is called when a swipe is successfully completed with a `touchend` or `mouseup`.
79
+ *
80
+ * `cancel` is called either on a `touchcancel` from the browser, or when we begin scrolling
81
+ * as described above.
82
+ *
83
+ */
84
+ bind: function(element, eventHandlers) {
85
+ // Absolute total movement, used to control swipe vs. scroll.
86
+ var totalX, totalY;
87
+ // Coordinates of the start position.
88
+ var startCoords;
89
+ // Last event's position.
90
+ var lastPos;
91
+ // Whether a swipe is active.
92
+ var active = false;
93
+
94
+ element.on('touchstart mousedown', function(event) {
95
+ startCoords = getCoordinates(event);
96
+ active = true;
97
+ totalX = 0;
98
+ totalY = 0;
99
+ lastPos = startCoords;
100
+ eventHandlers['start'] && eventHandlers['start'](startCoords);
101
+ });
102
+
103
+ element.on('touchcancel', function(event) {
104
+ active = false;
105
+ eventHandlers['cancel'] && eventHandlers['cancel']();
106
+ });
107
+
108
+ element.on('touchmove mousemove', function(event) {
109
+ if (!active) return;
110
+
111
+ // Android will send a touchcancel if it thinks we're starting to scroll.
112
+ // So when the total distance (+ or - or both) exceeds 10px in either direction,
113
+ // we either:
114
+ // - On totalX > totalY, we send preventDefault() and treat this as a swipe.
115
+ // - On totalY > totalX, we let the browser handle it as a scroll.
116
+
117
+ if (!startCoords) return;
118
+ var coords = getCoordinates(event);
119
+
120
+ totalX += Math.abs(coords.x - lastPos.x);
121
+ totalY += Math.abs(coords.y - lastPos.y);
122
+
123
+ lastPos = coords;
124
+
125
+ if (totalX < MOVE_BUFFER_RADIUS && totalY < MOVE_BUFFER_RADIUS) {
126
+ return;
127
+ }
128
+
129
+ // One of totalX or totalY has exceeded the buffer, so decide on swipe vs. scroll.
130
+ if (totalY > totalX) {
131
+ // Allow native scrolling to take over.
132
+ active = false;
133
+ eventHandlers['cancel'] && eventHandlers['cancel']();
134
+ return;
135
+ } else {
136
+ // Prevent the browser from scrolling.
137
+ event.preventDefault();
138
+
139
+ eventHandlers['move'] && eventHandlers['move'](coords);
140
+ }
141
+ });
142
+
143
+ element.on('touchend mouseup', function(event) {
144
+ if (!active) return;
145
+ active = false;
146
+ eventHandlers['end'] && eventHandlers['end'](getCoordinates(event));
147
+ });
148
+ }
149
+ };
150
+ }]);
151
+
152
+ /**
153
+ * @ngdoc directive
154
+ * @name ngTouch.directive:ngClick
155
+ *
156
+ * @description
157
+ * A more powerful replacement for the default ngClick designed to be used on touchscreen
158
+ * devices. Most mobile browsers wait about 300ms after a tap-and-release before sending
159
+ * the click event. This version handles them immediately, and then prevents the
160
+ * following click event from propagating.
161
+ *
162
+ * This directive can fall back to using an ordinary click event, and so works on desktop
163
+ * browsers as well as mobile.
164
+ *
165
+ * This directive also sets the CSS class `ng-click-active` while the element is being held
166
+ * down (by a mouse click or touch) so you can restyle the depressed element if you wish.
167
+ *
168
+ * @element ANY
169
+ * @param {expression} ngClick {@link guide/expression Expression} to evaluate
170
+ * upon tap. (Event object is available as `$event`)
171
+ *
172
+ * @example
173
+ <doc:example>
174
+ <doc:source>
175
+ <button ng-click="count = count + 1" ng-init="count=0">
176
+ Increment
177
+ </button>
178
+ count: {{ count }}
179
+ </doc:source>
180
+ </doc:example>
181
+ */
182
+
183
+ ngTouch.config(['$provide', function($provide) {
184
+ $provide.decorator('ngClickDirective', ['$delegate', function($delegate) {
185
+ // drop the default ngClick directive
186
+ $delegate.shift();
187
+ return $delegate;
188
+ }]);
189
+ }]);
190
+
191
+ ngTouch.directive('ngClick', ['$parse', '$timeout', '$rootElement',
192
+ function($parse, $timeout, $rootElement) {
193
+ var TAP_DURATION = 750; // Shorter than 750ms is a tap, longer is a taphold or drag.
194
+ var MOVE_TOLERANCE = 12; // 12px seems to work in most mobile browsers.
195
+ var PREVENT_DURATION = 2500; // 2.5 seconds maximum from preventGhostClick call to click
196
+ var CLICKBUSTER_THRESHOLD = 25; // 25 pixels in any dimension is the limit for busting clicks.
197
+
198
+ var ACTIVE_CLASS_NAME = 'ng-click-active';
199
+ var lastPreventedTime;
200
+ var touchCoordinates;
201
+
202
+
203
+ // TAP EVENTS AND GHOST CLICKS
204
+ //
205
+ // Why tap events?
206
+ // Mobile browsers detect a tap, then wait a moment (usually ~300ms) to see if you're
207
+ // double-tapping, and then fire a click event.
208
+ //
209
+ // This delay sucks and makes mobile apps feel unresponsive.
210
+ // So we detect touchstart, touchmove, touchcancel and touchend ourselves and determine when
211
+ // the user has tapped on something.
212
+ //
213
+ // What happens when the browser then generates a click event?
214
+ // The browser, of course, also detects the tap and fires a click after a delay. This results in
215
+ // tapping/clicking twice. So we do "clickbusting" to prevent it.
216
+ //
217
+ // How does it work?
218
+ // We attach global touchstart and click handlers, that run during the capture (early) phase.
219
+ // So the sequence for a tap is:
220
+ // - global touchstart: Sets an "allowable region" at the point touched.
221
+ // - element's touchstart: Starts a touch
222
+ // (- touchmove or touchcancel ends the touch, no click follows)
223
+ // - element's touchend: Determines if the tap is valid (didn't move too far away, didn't hold
224
+ // too long) and fires the user's tap handler. The touchend also calls preventGhostClick().
225
+ // - preventGhostClick() removes the allowable region the global touchstart created.
226
+ // - The browser generates a click event.
227
+ // - The global click handler catches the click, and checks whether it was in an allowable region.
228
+ // - If preventGhostClick was called, the region will have been removed, the click is busted.
229
+ // - If the region is still there, the click proceeds normally. Therefore clicks on links and
230
+ // other elements without ngTap on them work normally.
231
+ //
232
+ // This is an ugly, terrible hack!
233
+ // Yeah, tell me about it. The alternatives are using the slow click events, or making our users
234
+ // deal with the ghost clicks, so I consider this the least of evils. Fortunately Angular
235
+ // encapsulates this ugly logic away from the user.
236
+ //
237
+ // Why not just put click handlers on the element?
238
+ // We do that too, just to be sure. The problem is that the tap event might have caused the DOM
239
+ // to change, so that the click fires in the same position but something else is there now. So
240
+ // the handlers are global and care only about coordinates and not elements.
241
+
242
+ // Checks if the coordinates are close enough to be within the region.
243
+ function hit(x1, y1, x2, y2) {
244
+ return Math.abs(x1 - x2) < CLICKBUSTER_THRESHOLD && Math.abs(y1 - y2) < CLICKBUSTER_THRESHOLD;
245
+ }
246
+
247
+ // Checks a list of allowable regions against a click location.
248
+ // Returns true if the click should be allowed.
249
+ // Splices out the allowable region from the list after it has been used.
250
+ function checkAllowableRegions(touchCoordinates, x, y) {
251
+ for (var i = 0; i < touchCoordinates.length; i += 2) {
252
+ if (hit(touchCoordinates[i], touchCoordinates[i+1], x, y)) {
253
+ touchCoordinates.splice(i, i + 2);
254
+ return true; // allowable region
255
+ }
256
+ }
257
+ return false; // No allowable region; bust it.
258
+ }
259
+
260
+ // Global click handler that prevents the click if it's in a bustable zone and preventGhostClick
261
+ // was called recently.
262
+ function onClick(event) {
263
+ if (Date.now() - lastPreventedTime > PREVENT_DURATION) {
264
+ return; // Too old.
265
+ }
266
+
267
+ var touches = event.touches && event.touches.length ? event.touches : [event];
268
+ var x = touches[0].clientX;
269
+ var y = touches[0].clientY;
270
+ // Work around desktop Webkit quirk where clicking a label will fire two clicks (on the label
271
+ // and on the input element). Depending on the exact browser, this second click we don't want
272
+ // to bust has either (0,0) or negative coordinates.
273
+ if (x < 1 && y < 1) {
274
+ return; // offscreen
275
+ }
276
+
277
+ // Look for an allowable region containing this click.
278
+ // If we find one, that means it was created by touchstart and not removed by
279
+ // preventGhostClick, so we don't bust it.
280
+ if (checkAllowableRegions(touchCoordinates, x, y)) {
281
+ return;
282
+ }
283
+
284
+ // If we didn't find an allowable region, bust the click.
285
+ event.stopPropagation();
286
+ event.preventDefault();
287
+
288
+ // Blur focused form elements
289
+ event.target && event.target.blur();
290
+ }
291
+
292
+
293
+ // Global touchstart handler that creates an allowable region for a click event.
294
+ // This allowable region can be removed by preventGhostClick if we want to bust it.
295
+ function onTouchStart(event) {
296
+ var touches = event.touches && event.touches.length ? event.touches : [event];
297
+ var x = touches[0].clientX;
298
+ var y = touches[0].clientY;
299
+ touchCoordinates.push(x, y);
300
+
301
+ $timeout(function() {
302
+ // Remove the allowable region.
303
+ for (var i = 0; i < touchCoordinates.length; i += 2) {
304
+ if (touchCoordinates[i] == x && touchCoordinates[i+1] == y) {
305
+ touchCoordinates.splice(i, i + 2);
306
+ return;
307
+ }
308
+ }
309
+ }, PREVENT_DURATION, false);
310
+ }
311
+
312
+ // On the first call, attaches some event handlers. Then whenever it gets called, it creates a
313
+ // zone around the touchstart where clicks will get busted.
314
+ function preventGhostClick(x, y) {
315
+ if (!touchCoordinates) {
316
+ $rootElement[0].addEventListener('click', onClick, true);
317
+ $rootElement[0].addEventListener('touchstart', onTouchStart, true);
318
+ touchCoordinates = [];
319
+ }
320
+
321
+ lastPreventedTime = Date.now();
322
+
323
+ checkAllowableRegions(touchCoordinates, x, y);
324
+ }
325
+
326
+ // Actual linking function.
327
+ return function(scope, element, attr) {
328
+ var clickHandler = $parse(attr.ngClick),
329
+ tapping = false,
330
+ tapElement, // Used to blur the element after a tap.
331
+ startTime, // Used to check if the tap was held too long.
332
+ touchStartX,
333
+ touchStartY;
334
+
335
+ function resetState() {
336
+ tapping = false;
337
+ element.removeClass(ACTIVE_CLASS_NAME);
338
+ }
339
+
340
+ element.on('touchstart', function(event) {
341
+ tapping = true;
342
+ tapElement = event.target ? event.target : event.srcElement; // IE uses srcElement.
343
+ // Hack for Safari, which can target text nodes instead of containers.
344
+ if(tapElement.nodeType == 3) {
345
+ tapElement = tapElement.parentNode;
346
+ }
347
+
348
+ element.addClass(ACTIVE_CLASS_NAME);
349
+
350
+ startTime = Date.now();
351
+
352
+ var touches = event.touches && event.touches.length ? event.touches : [event];
353
+ var e = touches[0].originalEvent || touches[0];
354
+ touchStartX = e.clientX;
355
+ touchStartY = e.clientY;
356
+ });
357
+
358
+ element.on('touchmove', function(event) {
359
+ resetState();
360
+ });
361
+
362
+ element.on('touchcancel', function(event) {
363
+ resetState();
364
+ });
365
+
366
+ element.on('touchend', function(event) {
367
+ var diff = Date.now() - startTime;
368
+
369
+ var touches = (event.changedTouches && event.changedTouches.length) ? event.changedTouches :
370
+ ((event.touches && event.touches.length) ? event.touches : [event]);
371
+ var e = touches[0].originalEvent || touches[0];
372
+ var x = e.clientX;
373
+ var y = e.clientY;
374
+ var dist = Math.sqrt( Math.pow(x - touchStartX, 2) + Math.pow(y - touchStartY, 2) );
375
+
376
+ if (tapping && diff < TAP_DURATION && dist < MOVE_TOLERANCE) {
377
+ // Call preventGhostClick so the clickbuster will catch the corresponding click.
378
+ preventGhostClick(x, y);
379
+
380
+ // Blur the focused element (the button, probably) before firing the callback.
381
+ // This doesn't work perfectly on Android Chrome, but seems to work elsewhere.
382
+ // I couldn't get anything to work reliably on Android Chrome.
383
+ if (tapElement) {
384
+ tapElement.blur();
385
+ }
386
+
387
+ if (!angular.isDefined(attr.disabled) || attr.disabled === false) {
388
+ element.triggerHandler('click', event);
389
+ }
390
+ }
391
+
392
+ resetState();
393
+ });
394
+
395
+ // Hack for iOS Safari's benefit. It goes searching for onclick handlers and is liable to click
396
+ // something else nearby.
397
+ element.onclick = function(event) { };
398
+
399
+ // Actual click handler.
400
+ // There are three different kinds of clicks, only two of which reach this point.
401
+ // - On desktop browsers without touch events, their clicks will always come here.
402
+ // - On mobile browsers, the simulated "fast" click will call this.
403
+ // - But the browser's follow-up slow click will be "busted" before it reaches this handler.
404
+ // Therefore it's safe to use this directive on both mobile and desktop.
405
+ element.on('click', function(event) {
406
+ scope.$apply(function() {
407
+ clickHandler(scope, {$event: event});
408
+ });
409
+ });
410
+
411
+ element.on('mousedown', function(event) {
412
+ element.addClass(ACTIVE_CLASS_NAME);
413
+ });
414
+
415
+ element.on('mousemove mouseup', function(event) {
416
+ element.removeClass(ACTIVE_CLASS_NAME);
417
+ });
418
+
419
+ };
420
+ }]);
421
+
422
+ /**
423
+ * @ngdoc directive
424
+ * @name ngTouch.directive:ngSwipeLeft
425
+ *
426
+ * @description
427
+ * Specify custom behavior when an element is swiped to the left on a touchscreen device.
428
+ * A leftward swipe is a quick, right-to-left slide of the finger.
429
+ * Though ngSwipeLeft is designed for touch-based devices, it will work with a mouse click and drag too.
430
+ *
431
+ * @element ANY
432
+ * @param {expression} ngSwipeLeft {@link guide/expression Expression} to evaluate
433
+ * upon left swipe. (Event object is available as `$event`)
434
+ *
435
+ * @example
436
+ <doc:example>
437
+ <doc:source>
438
+ <div ng-show="!showActions" ng-swipe-left="showActions = true">
439
+ Some list content, like an email in the inbox
440
+ </div>
441
+ <div ng-show="showActions" ng-swipe-right="showActions = false">
442
+ <button ng-click="reply()">Reply</button>
443
+ <button ng-click="delete()">Delete</button>
444
+ </div>
445
+ </doc:source>
446
+ </doc:example>
447
+ */
448
+
449
+ /**
450
+ * @ngdoc directive
451
+ * @name ngTouch.directive:ngSwipeRight
452
+ *
453
+ * @description
454
+ * Specify custom behavior when an element is swiped to the right on a touchscreen device.
455
+ * A rightward swipe is a quick, left-to-right slide of the finger.
456
+ * Though ngSwipeRight is designed for touch-based devices, it will work with a mouse click and drag too.
457
+ *
458
+ * @element ANY
459
+ * @param {expression} ngSwipeRight {@link guide/expression Expression} to evaluate
460
+ * upon right swipe. (Event object is available as `$event`)
461
+ *
462
+ * @example
463
+ <doc:example>
464
+ <doc:source>
465
+ <div ng-show="!showActions" ng-swipe-left="showActions = true">
466
+ Some list content, like an email in the inbox
467
+ </div>
468
+ <div ng-show="showActions" ng-swipe-right="showActions = false">
469
+ <button ng-click="reply()">Reply</button>
470
+ <button ng-click="delete()">Delete</button>
471
+ </div>
472
+ </doc:source>
473
+ </doc:example>
474
+ */
475
+
476
+ function makeSwipeDirective(directiveName, direction, eventName) {
477
+ ngTouch.directive(directiveName, ['$parse', '$swipe', function($parse, $swipe) {
478
+ // The maximum vertical delta for a swipe should be less than 75px.
479
+ var MAX_VERTICAL_DISTANCE = 75;
480
+ // Vertical distance should not be more than a fraction of the horizontal distance.
481
+ var MAX_VERTICAL_RATIO = 0.3;
482
+ // At least a 30px lateral motion is necessary for a swipe.
483
+ var MIN_HORIZONTAL_DISTANCE = 30;
484
+
485
+ return function(scope, element, attr) {
486
+ var swipeHandler = $parse(attr[directiveName]);
487
+
488
+ var startCoords, valid;
489
+
490
+ function validSwipe(coords) {
491
+ // Check that it's within the coordinates.
492
+ // Absolute vertical distance must be within tolerances.
493
+ // Horizontal distance, we take the current X - the starting X.
494
+ // This is negative for leftward swipes and positive for rightward swipes.
495
+ // After multiplying by the direction (-1 for left, +1 for right), legal swipes
496
+ // (ie. same direction as the directive wants) will have a positive delta and
497
+ // illegal ones a negative delta.
498
+ // Therefore this delta must be positive, and larger than the minimum.
499
+ if (!startCoords) return false;
500
+ var deltaY = Math.abs(coords.y - startCoords.y);
501
+ var deltaX = (coords.x - startCoords.x) * direction;
502
+ return valid && // Short circuit for already-invalidated swipes.
503
+ deltaY < MAX_VERTICAL_DISTANCE &&
504
+ deltaX > 0 &&
505
+ deltaX > MIN_HORIZONTAL_DISTANCE &&
506
+ deltaY / deltaX < MAX_VERTICAL_RATIO;
507
+ }
508
+
509
+ $swipe.bind(element, {
510
+ 'start': function(coords) {
511
+ startCoords = coords;
512
+ valid = true;
513
+ },
514
+ 'cancel': function() {
515
+ valid = false;
516
+ },
517
+ 'end': function(coords) {
518
+ if (validSwipe(coords)) {
519
+ scope.$apply(function() {
520
+ element.triggerHandler(eventName);
521
+ swipeHandler(scope);
522
+ });
523
+ }
524
+ }
525
+ });
526
+ };
527
+ }]);
528
+ }
529
+
530
+ // Left is negative X-coordinate, right is positive.
531
+ makeSwipeDirective('ngSwipeLeft', -1, 'swipeleft');
532
+ makeSwipeDirective('ngSwipeRight', 1, 'swiperight');
533
+
534
+
535
+
536
+ })(window, window.angular);