kms 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2454) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kms/version.rb +1 -1
  3. data/vendor/assets/bower.json +23 -0
  4. data/vendor/assets/bower_components/Responsive-Dashboard/CONTRIBUTING.md +21 -0
  5. data/vendor/assets/bower_components/Responsive-Dashboard/LICENSE +21 -0
  6. data/vendor/assets/bower_components/Responsive-Dashboard/README.md +119 -0
  7. data/vendor/assets/bower_components/Responsive-Dashboard/bower.json +32 -0
  8. data/vendor/assets/bower_components/Responsive-Dashboard/gulpfile.js +81 -0
  9. data/vendor/assets/bower_components/Responsive-Dashboard/package.json +21 -0
  10. data/vendor/assets/bower_components/Responsive-Dashboard/src/fonts/montserrat-regular-webfont.eot +0 -0
  11. data/vendor/assets/bower_components/Responsive-Dashboard/src/fonts/montserrat-regular-webfont.svg +1317 -0
  12. data/vendor/assets/bower_components/Responsive-Dashboard/src/fonts/montserrat-regular-webfont.ttf +0 -0
  13. data/vendor/assets/bower_components/Responsive-Dashboard/src/fonts/montserrat-regular-webfont.woff +0 -0
  14. data/vendor/assets/bower_components/Responsive-Dashboard/src/img/avatar.jpg +0 -0
  15. data/vendor/assets/bower_components/Responsive-Dashboard/src/index.html +413 -0
  16. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/alerts-ctrl.js +19 -0
  17. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/controllers/master-ctrl.js +51 -0
  18. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/loading.js +13 -0
  19. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-body.js +16 -0
  20. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget-header.js +17 -0
  21. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/directives/widget.js +16 -0
  22. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/module.js +1 -0
  23. data/vendor/assets/bower_components/Responsive-Dashboard/src/js/dashboard/routes.js +22 -0
  24. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/content.less +19 -0
  25. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/hamburg.less +29 -0
  26. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/header.less +92 -0
  27. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/loading.less +40 -0
  28. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/main.less +73 -0
  29. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/mixins.less +5 -0
  30. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/sidebar.less +122 -0
  31. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/variables.less +10 -0
  32. data/vendor/assets/bower_components/Responsive-Dashboard/src/less/dashboard/widgets.less +95 -0
  33. data/vendor/assets/bower_components/alertify/README.md +4 -0
  34. data/vendor/assets/bower_components/alertify/alertify.js +633 -0
  35. data/vendor/assets/bower_components/alertify/alertify.min.js +2 -0
  36. data/vendor/assets/bower_components/alertify/component.json +6 -0
  37. data/vendor/assets/bower_components/alertify/themes/alertify.bootstrap.css +131 -0
  38. data/vendor/assets/bower_components/alertify/themes/alertify.core.css +141 -0
  39. data/vendor/assets/bower_components/alertify/themes/alertify.default.css +81 -0
  40. data/vendor/assets/bower_components/angular/README.md +67 -0
  41. data/vendor/assets/bower_components/angular/angular-csp.css +13 -0
  42. data/vendor/assets/bower_components/angular/angular.js +25751 -0
  43. data/vendor/assets/bower_components/angular/angular.min.js +248 -0
  44. data/vendor/assets/bower_components/angular/angular.min.js.gzip +0 -0
  45. data/vendor/assets/bower_components/angular/angular.min.js.map +8 -0
  46. data/vendor/assets/bower_components/angular/bower.json +8 -0
  47. data/vendor/assets/bower_components/angular/package.json +25 -0
  48. data/vendor/assets/bower_components/angular-bootstrap/bower.json +11 -0
  49. data/vendor/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.js +4167 -0
  50. data/vendor/assets/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js +10 -0
  51. data/vendor/assets/bower_components/angular-bootstrap/ui-bootstrap.js +3857 -0
  52. data/vendor/assets/bower_components/angular-bootstrap/ui-bootstrap.min.js +9 -0
  53. data/vendor/assets/bower_components/angular-cookies/README.md +77 -0
  54. data/vendor/assets/bower_components/angular-cookies/angular-cookies.js +206 -0
  55. data/vendor/assets/bower_components/angular-cookies/angular-cookies.min.js +8 -0
  56. data/vendor/assets/bower_components/angular-cookies/angular-cookies.min.js.map +8 -0
  57. data/vendor/assets/bower_components/angular-cookies/bower.json +9 -0
  58. data/vendor/assets/bower_components/angular-cookies/package.json +26 -0
  59. data/vendor/assets/bower_components/angular-i18n/README.md +65 -0
  60. data/vendor/assets/bower_components/angular-i18n/aa-dj.js +2 -0
  61. data/vendor/assets/bower_components/angular-i18n/aa-er.js +2 -0
  62. data/vendor/assets/bower_components/angular-i18n/aa-et.js +2 -0
  63. data/vendor/assets/bower_components/angular-i18n/aa.js +2 -0
  64. data/vendor/assets/bower_components/angular-i18n/af-na.js +2 -0
  65. data/vendor/assets/bower_components/angular-i18n/af-za.js +2 -0
  66. data/vendor/assets/bower_components/angular-i18n/af.js +2 -0
  67. data/vendor/assets/bower_components/angular-i18n/agq-cm.js +2 -0
  68. data/vendor/assets/bower_components/angular-i18n/agq.js +2 -0
  69. data/vendor/assets/bower_components/angular-i18n/ak-gh.js +2 -0
  70. data/vendor/assets/bower_components/angular-i18n/ak.js +2 -0
  71. data/vendor/assets/bower_components/angular-i18n/am-et.js +2 -0
  72. data/vendor/assets/bower_components/angular-i18n/am.js +2 -0
  73. data/vendor/assets/bower_components/angular-i18n/angular-locale_aa-dj.js +128 -0
  74. data/vendor/assets/bower_components/angular-i18n/angular-locale_aa-er.js +128 -0
  75. data/vendor/assets/bower_components/angular-i18n/angular-locale_aa-et.js +128 -0
  76. data/vendor/assets/bower_components/angular-i18n/angular-locale_aa.js +128 -0
  77. data/vendor/assets/bower_components/angular-i18n/angular-locale_af-na.js +110 -0
  78. data/vendor/assets/bower_components/angular-i18n/angular-locale_af-za.js +110 -0
  79. data/vendor/assets/bower_components/angular-i18n/angular-locale_af.js +110 -0
  80. data/vendor/assets/bower_components/angular-i18n/angular-locale_agq-cm.js +128 -0
  81. data/vendor/assets/bower_components/angular-i18n/angular-locale_agq.js +128 -0
  82. data/vendor/assets/bower_components/angular-i18n/angular-locale_ak-gh.js +128 -0
  83. data/vendor/assets/bower_components/angular-i18n/angular-locale_ak.js +128 -0
  84. data/vendor/assets/bower_components/angular-i18n/angular-locale_am-et.js +110 -0
  85. data/vendor/assets/bower_components/angular-i18n/angular-locale_am.js +110 -0
  86. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-001.js +110 -0
  87. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ae.js +110 -0
  88. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-bh.js +110 -0
  89. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-dj.js +110 -0
  90. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-dz.js +110 -0
  91. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-eg.js +110 -0
  92. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-eh.js +110 -0
  93. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-er.js +110 -0
  94. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-il.js +110 -0
  95. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-iq.js +110 -0
  96. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-jo.js +110 -0
  97. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-km.js +110 -0
  98. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-kw.js +110 -0
  99. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-lb.js +110 -0
  100. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ly.js +110 -0
  101. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ma.js +110 -0
  102. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-mr.js +110 -0
  103. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-om.js +110 -0
  104. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ps.js +110 -0
  105. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-qa.js +110 -0
  106. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-sa.js +110 -0
  107. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-sd.js +110 -0
  108. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-so.js +110 -0
  109. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ss.js +110 -0
  110. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-sy.js +110 -0
  111. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-td.js +110 -0
  112. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-tn.js +110 -0
  113. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar-ye.js +110 -0
  114. data/vendor/assets/bower_components/angular-i18n/angular-locale_ar.js +110 -0
  115. data/vendor/assets/bower_components/angular-i18n/angular-locale_as-in.js +128 -0
  116. data/vendor/assets/bower_components/angular-i18n/angular-locale_as.js +128 -0
  117. data/vendor/assets/bower_components/angular-i18n/angular-locale_asa-tz.js +128 -0
  118. data/vendor/assets/bower_components/angular-i18n/angular-locale_asa.js +128 -0
  119. data/vendor/assets/bower_components/angular-i18n/angular-locale_ast-es.js +128 -0
  120. data/vendor/assets/bower_components/angular-i18n/angular-locale_ast.js +128 -0
  121. data/vendor/assets/bower_components/angular-i18n/angular-locale_az-cyrl-az.js +110 -0
  122. data/vendor/assets/bower_components/angular-i18n/angular-locale_az-cyrl.js +110 -0
  123. data/vendor/assets/bower_components/angular-i18n/angular-locale_az-latn-az.js +110 -0
  124. data/vendor/assets/bower_components/angular-i18n/angular-locale_az-latn.js +110 -0
  125. data/vendor/assets/bower_components/angular-i18n/angular-locale_az.js +110 -0
  126. data/vendor/assets/bower_components/angular-i18n/angular-locale_bas-cm.js +128 -0
  127. data/vendor/assets/bower_components/angular-i18n/angular-locale_bas.js +128 -0
  128. data/vendor/assets/bower_components/angular-i18n/angular-locale_be-by.js +110 -0
  129. data/vendor/assets/bower_components/angular-i18n/angular-locale_be.js +110 -0
  130. data/vendor/assets/bower_components/angular-i18n/angular-locale_bem-zm.js +128 -0
  131. data/vendor/assets/bower_components/angular-i18n/angular-locale_bem.js +128 -0
  132. data/vendor/assets/bower_components/angular-i18n/angular-locale_bez-tz.js +128 -0
  133. data/vendor/assets/bower_components/angular-i18n/angular-locale_bez.js +128 -0
  134. data/vendor/assets/bower_components/angular-i18n/angular-locale_bg-bg.js +110 -0
  135. data/vendor/assets/bower_components/angular-i18n/angular-locale_bg.js +110 -0
  136. data/vendor/assets/bower_components/angular-i18n/angular-locale_bm-latn-ml.js +128 -0
  137. data/vendor/assets/bower_components/angular-i18n/angular-locale_bm-latn.js +128 -0
  138. data/vendor/assets/bower_components/angular-i18n/angular-locale_bm-ml.js +115 -0
  139. data/vendor/assets/bower_components/angular-i18n/angular-locale_bm.js +128 -0
  140. data/vendor/assets/bower_components/angular-i18n/angular-locale_bn-bd.js +110 -0
  141. data/vendor/assets/bower_components/angular-i18n/angular-locale_bn-in.js +110 -0
  142. data/vendor/assets/bower_components/angular-i18n/angular-locale_bn.js +110 -0
  143. data/vendor/assets/bower_components/angular-i18n/angular-locale_bo-cn.js +128 -0
  144. data/vendor/assets/bower_components/angular-i18n/angular-locale_bo-in.js +128 -0
  145. data/vendor/assets/bower_components/angular-i18n/angular-locale_bo.js +128 -0
  146. data/vendor/assets/bower_components/angular-i18n/angular-locale_br-fr.js +110 -0
  147. data/vendor/assets/bower_components/angular-i18n/angular-locale_br.js +110 -0
  148. data/vendor/assets/bower_components/angular-i18n/angular-locale_brx-in.js +128 -0
  149. data/vendor/assets/bower_components/angular-i18n/angular-locale_brx.js +128 -0
  150. data/vendor/assets/bower_components/angular-i18n/angular-locale_bs-cyrl-ba.js +128 -0
  151. data/vendor/assets/bower_components/angular-i18n/angular-locale_bs-cyrl.js +128 -0
  152. data/vendor/assets/bower_components/angular-i18n/angular-locale_bs-latn-ba.js +128 -0
  153. data/vendor/assets/bower_components/angular-i18n/angular-locale_bs-latn.js +128 -0
  154. data/vendor/assets/bower_components/angular-i18n/angular-locale_bs.js +128 -0
  155. data/vendor/assets/bower_components/angular-i18n/angular-locale_byn-er.js +115 -0
  156. data/vendor/assets/bower_components/angular-i18n/angular-locale_byn.js +115 -0
  157. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca-ad.js +128 -0
  158. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca-es-valencia.js +128 -0
  159. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca-es.js +128 -0
  160. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca-fr.js +128 -0
  161. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca-it.js +128 -0
  162. data/vendor/assets/bower_components/angular-i18n/angular-locale_ca.js +128 -0
  163. data/vendor/assets/bower_components/angular-i18n/angular-locale_cgg-ug.js +128 -0
  164. data/vendor/assets/bower_components/angular-i18n/angular-locale_cgg.js +128 -0
  165. data/vendor/assets/bower_components/angular-i18n/angular-locale_chr-us.js +110 -0
  166. data/vendor/assets/bower_components/angular-i18n/angular-locale_chr.js +110 -0
  167. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-arab-iq.js +128 -0
  168. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-arab-ir.js +128 -0
  169. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-arab.js +128 -0
  170. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-iq.js +128 -0
  171. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-ir.js +128 -0
  172. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-latn-iq.js +128 -0
  173. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb-latn.js +128 -0
  174. data/vendor/assets/bower_components/angular-i18n/angular-locale_ckb.js +128 -0
  175. data/vendor/assets/bower_components/angular-i18n/angular-locale_cs-cz.js +128 -0
  176. data/vendor/assets/bower_components/angular-i18n/angular-locale_cs.js +128 -0
  177. data/vendor/assets/bower_components/angular-i18n/angular-locale_cy-gb.js +110 -0
  178. data/vendor/assets/bower_components/angular-i18n/angular-locale_cy.js +110 -0
  179. data/vendor/assets/bower_components/angular-i18n/angular-locale_da-dk.js +141 -0
  180. data/vendor/assets/bower_components/angular-i18n/angular-locale_da-gl.js +141 -0
  181. data/vendor/assets/bower_components/angular-i18n/angular-locale_da.js +141 -0
  182. data/vendor/assets/bower_components/angular-i18n/angular-locale_dav-ke.js +128 -0
  183. data/vendor/assets/bower_components/angular-i18n/angular-locale_dav.js +128 -0
  184. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-at.js +128 -0
  185. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-be.js +128 -0
  186. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-ch.js +128 -0
  187. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-de.js +128 -0
  188. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-li.js +128 -0
  189. data/vendor/assets/bower_components/angular-i18n/angular-locale_de-lu.js +128 -0
  190. data/vendor/assets/bower_components/angular-i18n/angular-locale_de.js +128 -0
  191. data/vendor/assets/bower_components/angular-i18n/angular-locale_dje-ne.js +128 -0
  192. data/vendor/assets/bower_components/angular-i18n/angular-locale_dje.js +128 -0
  193. data/vendor/assets/bower_components/angular-i18n/angular-locale_dsb-de.js +128 -0
  194. data/vendor/assets/bower_components/angular-i18n/angular-locale_dsb.js +128 -0
  195. data/vendor/assets/bower_components/angular-i18n/angular-locale_dua-cm.js +128 -0
  196. data/vendor/assets/bower_components/angular-i18n/angular-locale_dua.js +128 -0
  197. data/vendor/assets/bower_components/angular-i18n/angular-locale_dyo-sn.js +128 -0
  198. data/vendor/assets/bower_components/angular-i18n/angular-locale_dyo.js +128 -0
  199. data/vendor/assets/bower_components/angular-i18n/angular-locale_dz-bt.js +128 -0
  200. data/vendor/assets/bower_components/angular-i18n/angular-locale_dz.js +128 -0
  201. data/vendor/assets/bower_components/angular-i18n/angular-locale_ebu-ke.js +128 -0
  202. data/vendor/assets/bower_components/angular-i18n/angular-locale_ebu.js +128 -0
  203. data/vendor/assets/bower_components/angular-i18n/angular-locale_ee-gh.js +128 -0
  204. data/vendor/assets/bower_components/angular-i18n/angular-locale_ee-tg.js +128 -0
  205. data/vendor/assets/bower_components/angular-i18n/angular-locale_ee.js +128 -0
  206. data/vendor/assets/bower_components/angular-i18n/angular-locale_el-cy.js +110 -0
  207. data/vendor/assets/bower_components/angular-i18n/angular-locale_el-gr.js +110 -0
  208. data/vendor/assets/bower_components/angular-i18n/angular-locale_el.js +110 -0
  209. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-001.js +128 -0
  210. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-150.js +128 -0
  211. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ag.js +128 -0
  212. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ai.js +128 -0
  213. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-as.js +128 -0
  214. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-au.js +128 -0
  215. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-bb.js +128 -0
  216. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-be.js +128 -0
  217. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-bm.js +128 -0
  218. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-bs.js +128 -0
  219. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-bw.js +128 -0
  220. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-bz.js +128 -0
  221. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ca.js +128 -0
  222. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-cc.js +128 -0
  223. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ck.js +128 -0
  224. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-cm.js +128 -0
  225. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-cx.js +128 -0
  226. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-dg.js +128 -0
  227. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-dm.js +128 -0
  228. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-dsrt-us.js +99 -0
  229. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-dsrt.js +99 -0
  230. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-er.js +128 -0
  231. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-fj.js +128 -0
  232. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-fk.js +128 -0
  233. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-fm.js +128 -0
  234. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gb.js +128 -0
  235. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gd.js +128 -0
  236. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gg.js +128 -0
  237. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gh.js +128 -0
  238. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gi.js +128 -0
  239. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gm.js +128 -0
  240. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gu.js +128 -0
  241. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-gy.js +128 -0
  242. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-hk.js +128 -0
  243. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ie.js +128 -0
  244. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-im.js +128 -0
  245. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-in.js +128 -0
  246. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-io.js +128 -0
  247. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-iso.js +128 -0
  248. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-je.js +128 -0
  249. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-jm.js +128 -0
  250. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ke.js +128 -0
  251. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ki.js +128 -0
  252. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-kn.js +128 -0
  253. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ky.js +128 -0
  254. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-lc.js +128 -0
  255. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-lr.js +128 -0
  256. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ls.js +128 -0
  257. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mg.js +128 -0
  258. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mh.js +128 -0
  259. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mo.js +128 -0
  260. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mp.js +128 -0
  261. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ms.js +128 -0
  262. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mt.js +128 -0
  263. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mu.js +128 -0
  264. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-mw.js +128 -0
  265. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-my.js +128 -0
  266. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-na.js +128 -0
  267. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-nf.js +128 -0
  268. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ng.js +128 -0
  269. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-nr.js +128 -0
  270. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-nu.js +128 -0
  271. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-nz.js +128 -0
  272. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-pg.js +128 -0
  273. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ph.js +128 -0
  274. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-pk.js +128 -0
  275. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-pn.js +128 -0
  276. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-pr.js +128 -0
  277. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-pw.js +128 -0
  278. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-rw.js +128 -0
  279. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sb.js +128 -0
  280. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sc.js +128 -0
  281. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sd.js +128 -0
  282. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sg.js +128 -0
  283. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sh.js +128 -0
  284. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sl.js +128 -0
  285. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ss.js +128 -0
  286. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sx.js +128 -0
  287. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-sz.js +128 -0
  288. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-tc.js +128 -0
  289. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-tk.js +128 -0
  290. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-to.js +128 -0
  291. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-tt.js +128 -0
  292. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-tv.js +128 -0
  293. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-tz.js +128 -0
  294. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ug.js +128 -0
  295. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-um.js +128 -0
  296. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-us.js +128 -0
  297. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-vc.js +128 -0
  298. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-vg.js +128 -0
  299. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-vi.js +128 -0
  300. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-vu.js +128 -0
  301. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-ws.js +128 -0
  302. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-za.js +128 -0
  303. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-zm.js +128 -0
  304. data/vendor/assets/bower_components/angular-i18n/angular-locale_en-zw.js +128 -0
  305. data/vendor/assets/bower_components/angular-i18n/angular-locale_en.js +128 -0
  306. data/vendor/assets/bower_components/angular-i18n/angular-locale_eo-001.js +128 -0
  307. data/vendor/assets/bower_components/angular-i18n/angular-locale_eo.js +128 -0
  308. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-419.js +110 -0
  309. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ar.js +110 -0
  310. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-bo.js +110 -0
  311. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-cl.js +110 -0
  312. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-co.js +110 -0
  313. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-cr.js +110 -0
  314. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-cu.js +110 -0
  315. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-do.js +110 -0
  316. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ea.js +110 -0
  317. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ec.js +110 -0
  318. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-es.js +110 -0
  319. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-gq.js +110 -0
  320. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-gt.js +110 -0
  321. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-hn.js +110 -0
  322. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ic.js +110 -0
  323. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-mx.js +110 -0
  324. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ni.js +110 -0
  325. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-pa.js +110 -0
  326. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-pe.js +110 -0
  327. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ph.js +110 -0
  328. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-pr.js +110 -0
  329. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-py.js +110 -0
  330. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-sv.js +110 -0
  331. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-us.js +110 -0
  332. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-uy.js +110 -0
  333. data/vendor/assets/bower_components/angular-i18n/angular-locale_es-ve.js +110 -0
  334. data/vendor/assets/bower_components/angular-i18n/angular-locale_es.js +110 -0
  335. data/vendor/assets/bower_components/angular-i18n/angular-locale_et-ee.js +128 -0
  336. data/vendor/assets/bower_components/angular-i18n/angular-locale_et.js +128 -0
  337. data/vendor/assets/bower_components/angular-i18n/angular-locale_eu-es.js +110 -0
  338. data/vendor/assets/bower_components/angular-i18n/angular-locale_eu.js +110 -0
  339. data/vendor/assets/bower_components/angular-i18n/angular-locale_ewo-cm.js +128 -0
  340. data/vendor/assets/bower_components/angular-i18n/angular-locale_ewo.js +128 -0
  341. data/vendor/assets/bower_components/angular-i18n/angular-locale_fa-af.js +110 -0
  342. data/vendor/assets/bower_components/angular-i18n/angular-locale_fa-ir.js +110 -0
  343. data/vendor/assets/bower_components/angular-i18n/angular-locale_fa.js +110 -0
  344. data/vendor/assets/bower_components/angular-i18n/angular-locale_ff-cm.js +128 -0
  345. data/vendor/assets/bower_components/angular-i18n/angular-locale_ff-gn.js +128 -0
  346. data/vendor/assets/bower_components/angular-i18n/angular-locale_ff-mr.js +128 -0
  347. data/vendor/assets/bower_components/angular-i18n/angular-locale_ff-sn.js +128 -0
  348. data/vendor/assets/bower_components/angular-i18n/angular-locale_ff.js +128 -0
  349. data/vendor/assets/bower_components/angular-i18n/angular-locale_fi-fi.js +128 -0
  350. data/vendor/assets/bower_components/angular-i18n/angular-locale_fi.js +128 -0
  351. data/vendor/assets/bower_components/angular-i18n/angular-locale_fil-ph.js +128 -0
  352. data/vendor/assets/bower_components/angular-i18n/angular-locale_fil.js +128 -0
  353. data/vendor/assets/bower_components/angular-i18n/angular-locale_fo-fo.js +128 -0
  354. data/vendor/assets/bower_components/angular-i18n/angular-locale_fo.js +128 -0
  355. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-be.js +110 -0
  356. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-bf.js +110 -0
  357. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-bi.js +110 -0
  358. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-bj.js +110 -0
  359. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-bl.js +110 -0
  360. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ca.js +110 -0
  361. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-cd.js +110 -0
  362. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-cf.js +110 -0
  363. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-cg.js +110 -0
  364. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ch.js +110 -0
  365. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ci.js +110 -0
  366. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-cm.js +110 -0
  367. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-dj.js +110 -0
  368. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-dz.js +110 -0
  369. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-fr.js +110 -0
  370. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ga.js +110 -0
  371. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-gf.js +110 -0
  372. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-gn.js +110 -0
  373. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-gp.js +110 -0
  374. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-gq.js +110 -0
  375. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ht.js +110 -0
  376. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-km.js +110 -0
  377. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-lu.js +110 -0
  378. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ma.js +110 -0
  379. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mc.js +110 -0
  380. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mf.js +110 -0
  381. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mg.js +110 -0
  382. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ml.js +110 -0
  383. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mq.js +110 -0
  384. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mr.js +110 -0
  385. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-mu.js +110 -0
  386. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-nc.js +110 -0
  387. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-ne.js +110 -0
  388. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-pf.js +110 -0
  389. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-pm.js +110 -0
  390. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-re.js +110 -0
  391. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-rw.js +110 -0
  392. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-sc.js +110 -0
  393. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-sn.js +110 -0
  394. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-sy.js +110 -0
  395. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-td.js +110 -0
  396. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-tg.js +110 -0
  397. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-tn.js +110 -0
  398. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-vu.js +110 -0
  399. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-wf.js +110 -0
  400. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr-yt.js +110 -0
  401. data/vendor/assets/bower_components/angular-i18n/angular-locale_fr.js +110 -0
  402. data/vendor/assets/bower_components/angular-i18n/angular-locale_fur-it.js +128 -0
  403. data/vendor/assets/bower_components/angular-i18n/angular-locale_fur.js +128 -0
  404. data/vendor/assets/bower_components/angular-i18n/angular-locale_fy-nl.js +128 -0
  405. data/vendor/assets/bower_components/angular-i18n/angular-locale_fy.js +128 -0
  406. data/vendor/assets/bower_components/angular-i18n/angular-locale_ga-ie.js +110 -0
  407. data/vendor/assets/bower_components/angular-i18n/angular-locale_ga.js +110 -0
  408. data/vendor/assets/bower_components/angular-i18n/angular-locale_gd-gb.js +128 -0
  409. data/vendor/assets/bower_components/angular-i18n/angular-locale_gd.js +128 -0
  410. data/vendor/assets/bower_components/angular-i18n/angular-locale_gl-es.js +128 -0
  411. data/vendor/assets/bower_components/angular-i18n/angular-locale_gl.js +128 -0
  412. data/vendor/assets/bower_components/angular-i18n/angular-locale_gsw-ch.js +110 -0
  413. data/vendor/assets/bower_components/angular-i18n/angular-locale_gsw-fr.js +110 -0
  414. data/vendor/assets/bower_components/angular-i18n/angular-locale_gsw-li.js +110 -0
  415. data/vendor/assets/bower_components/angular-i18n/angular-locale_gsw.js +110 -0
  416. data/vendor/assets/bower_components/angular-i18n/angular-locale_gu-in.js +110 -0
  417. data/vendor/assets/bower_components/angular-i18n/angular-locale_gu.js +110 -0
  418. data/vendor/assets/bower_components/angular-i18n/angular-locale_guz-ke.js +128 -0
  419. data/vendor/assets/bower_components/angular-i18n/angular-locale_guz.js +128 -0
  420. data/vendor/assets/bower_components/angular-i18n/angular-locale_gv-im.js +128 -0
  421. data/vendor/assets/bower_components/angular-i18n/angular-locale_gv.js +128 -0
  422. data/vendor/assets/bower_components/angular-i18n/angular-locale_ha-latn-gh.js +128 -0
  423. data/vendor/assets/bower_components/angular-i18n/angular-locale_ha-latn-ne.js +128 -0
  424. data/vendor/assets/bower_components/angular-i18n/angular-locale_ha-latn-ng.js +128 -0
  425. data/vendor/assets/bower_components/angular-i18n/angular-locale_ha-latn.js +128 -0
  426. data/vendor/assets/bower_components/angular-i18n/angular-locale_ha.js +128 -0
  427. data/vendor/assets/bower_components/angular-i18n/angular-locale_haw-us.js +110 -0
  428. data/vendor/assets/bower_components/angular-i18n/angular-locale_haw.js +110 -0
  429. data/vendor/assets/bower_components/angular-i18n/angular-locale_he-il.js +128 -0
  430. data/vendor/assets/bower_components/angular-i18n/angular-locale_he.js +128 -0
  431. data/vendor/assets/bower_components/angular-i18n/angular-locale_hi-in.js +110 -0
  432. data/vendor/assets/bower_components/angular-i18n/angular-locale_hi.js +110 -0
  433. data/vendor/assets/bower_components/angular-i18n/angular-locale_hr-ba.js +128 -0
  434. data/vendor/assets/bower_components/angular-i18n/angular-locale_hr-hr.js +128 -0
  435. data/vendor/assets/bower_components/angular-i18n/angular-locale_hr.js +128 -0
  436. data/vendor/assets/bower_components/angular-i18n/angular-locale_hsb-de.js +128 -0
  437. data/vendor/assets/bower_components/angular-i18n/angular-locale_hsb.js +128 -0
  438. data/vendor/assets/bower_components/angular-i18n/angular-locale_hu-hu.js +110 -0
  439. data/vendor/assets/bower_components/angular-i18n/angular-locale_hu.js +110 -0
  440. data/vendor/assets/bower_components/angular-i18n/angular-locale_hy-am.js +110 -0
  441. data/vendor/assets/bower_components/angular-i18n/angular-locale_hy.js +110 -0
  442. data/vendor/assets/bower_components/angular-i18n/angular-locale_ia-fr.js +128 -0
  443. data/vendor/assets/bower_components/angular-i18n/angular-locale_ia.js +128 -0
  444. data/vendor/assets/bower_components/angular-i18n/angular-locale_id-id.js +110 -0
  445. data/vendor/assets/bower_components/angular-i18n/angular-locale_id.js +110 -0
  446. data/vendor/assets/bower_components/angular-i18n/angular-locale_ig-ng.js +128 -0
  447. data/vendor/assets/bower_components/angular-i18n/angular-locale_ig.js +128 -0
  448. data/vendor/assets/bower_components/angular-i18n/angular-locale_ii-cn.js +128 -0
  449. data/vendor/assets/bower_components/angular-i18n/angular-locale_ii.js +128 -0
  450. data/vendor/assets/bower_components/angular-i18n/angular-locale_in.js +110 -0
  451. data/vendor/assets/bower_components/angular-i18n/angular-locale_is-is.js +141 -0
  452. data/vendor/assets/bower_components/angular-i18n/angular-locale_is.js +141 -0
  453. data/vendor/assets/bower_components/angular-i18n/angular-locale_it-ch.js +128 -0
  454. data/vendor/assets/bower_components/angular-i18n/angular-locale_it-it.js +128 -0
  455. data/vendor/assets/bower_components/angular-i18n/angular-locale_it-sm.js +128 -0
  456. data/vendor/assets/bower_components/angular-i18n/angular-locale_it.js +128 -0
  457. data/vendor/assets/bower_components/angular-i18n/angular-locale_iw.js +128 -0
  458. data/vendor/assets/bower_components/angular-i18n/angular-locale_ja-jp.js +110 -0
  459. data/vendor/assets/bower_components/angular-i18n/angular-locale_ja.js +110 -0
  460. data/vendor/assets/bower_components/angular-i18n/angular-locale_jgo-cm.js +128 -0
  461. data/vendor/assets/bower_components/angular-i18n/angular-locale_jgo.js +128 -0
  462. data/vendor/assets/bower_components/angular-i18n/angular-locale_jmc-tz.js +128 -0
  463. data/vendor/assets/bower_components/angular-i18n/angular-locale_jmc.js +128 -0
  464. data/vendor/assets/bower_components/angular-i18n/angular-locale_ka-ge.js +110 -0
  465. data/vendor/assets/bower_components/angular-i18n/angular-locale_ka.js +110 -0
  466. data/vendor/assets/bower_components/angular-i18n/angular-locale_kab-dz.js +128 -0
  467. data/vendor/assets/bower_components/angular-i18n/angular-locale_kab.js +128 -0
  468. data/vendor/assets/bower_components/angular-i18n/angular-locale_kam-ke.js +128 -0
  469. data/vendor/assets/bower_components/angular-i18n/angular-locale_kam.js +128 -0
  470. data/vendor/assets/bower_components/angular-i18n/angular-locale_kde-tz.js +128 -0
  471. data/vendor/assets/bower_components/angular-i18n/angular-locale_kde.js +128 -0
  472. data/vendor/assets/bower_components/angular-i18n/angular-locale_kea-cv.js +128 -0
  473. data/vendor/assets/bower_components/angular-i18n/angular-locale_kea.js +128 -0
  474. data/vendor/assets/bower_components/angular-i18n/angular-locale_khq-ml.js +128 -0
  475. data/vendor/assets/bower_components/angular-i18n/angular-locale_khq.js +128 -0
  476. data/vendor/assets/bower_components/angular-i18n/angular-locale_ki-ke.js +128 -0
  477. data/vendor/assets/bower_components/angular-i18n/angular-locale_ki.js +128 -0
  478. data/vendor/assets/bower_components/angular-i18n/angular-locale_kk-cyrl-kz.js +110 -0
  479. data/vendor/assets/bower_components/angular-i18n/angular-locale_kk-cyrl.js +110 -0
  480. data/vendor/assets/bower_components/angular-i18n/angular-locale_kk.js +110 -0
  481. data/vendor/assets/bower_components/angular-i18n/angular-locale_kkj-cm.js +128 -0
  482. data/vendor/assets/bower_components/angular-i18n/angular-locale_kkj.js +128 -0
  483. data/vendor/assets/bower_components/angular-i18n/angular-locale_kl-gl.js +128 -0
  484. data/vendor/assets/bower_components/angular-i18n/angular-locale_kl.js +128 -0
  485. data/vendor/assets/bower_components/angular-i18n/angular-locale_kln-ke.js +128 -0
  486. data/vendor/assets/bower_components/angular-i18n/angular-locale_kln.js +128 -0
  487. data/vendor/assets/bower_components/angular-i18n/angular-locale_km-kh.js +110 -0
  488. data/vendor/assets/bower_components/angular-i18n/angular-locale_km.js +110 -0
  489. data/vendor/assets/bower_components/angular-i18n/angular-locale_kn-in.js +110 -0
  490. data/vendor/assets/bower_components/angular-i18n/angular-locale_kn.js +110 -0
  491. data/vendor/assets/bower_components/angular-i18n/angular-locale_ko-kp.js +110 -0
  492. data/vendor/assets/bower_components/angular-i18n/angular-locale_ko-kr.js +110 -0
  493. data/vendor/assets/bower_components/angular-i18n/angular-locale_ko.js +110 -0
  494. data/vendor/assets/bower_components/angular-i18n/angular-locale_kok-in.js +128 -0
  495. data/vendor/assets/bower_components/angular-i18n/angular-locale_kok.js +128 -0
  496. data/vendor/assets/bower_components/angular-i18n/angular-locale_ks-arab-in.js +128 -0
  497. data/vendor/assets/bower_components/angular-i18n/angular-locale_ks-arab.js +128 -0
  498. data/vendor/assets/bower_components/angular-i18n/angular-locale_ks.js +128 -0
  499. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksb-tz.js +128 -0
  500. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksb.js +128 -0
  501. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksf-cm.js +128 -0
  502. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksf.js +128 -0
  503. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksh-de.js +128 -0
  504. data/vendor/assets/bower_components/angular-i18n/angular-locale_ksh.js +128 -0
  505. data/vendor/assets/bower_components/angular-i18n/angular-locale_kw-gb.js +128 -0
  506. data/vendor/assets/bower_components/angular-i18n/angular-locale_kw.js +128 -0
  507. data/vendor/assets/bower_components/angular-i18n/angular-locale_ky-cyrl-kg.js +110 -0
  508. data/vendor/assets/bower_components/angular-i18n/angular-locale_ky-cyrl.js +110 -0
  509. data/vendor/assets/bower_components/angular-i18n/angular-locale_ky.js +110 -0
  510. data/vendor/assets/bower_components/angular-i18n/angular-locale_lag-tz.js +128 -0
  511. data/vendor/assets/bower_components/angular-i18n/angular-locale_lag.js +128 -0
  512. data/vendor/assets/bower_components/angular-i18n/angular-locale_lb-lu.js +128 -0
  513. data/vendor/assets/bower_components/angular-i18n/angular-locale_lb.js +128 -0
  514. data/vendor/assets/bower_components/angular-i18n/angular-locale_lg-ug.js +128 -0
  515. data/vendor/assets/bower_components/angular-i18n/angular-locale_lg.js +128 -0
  516. data/vendor/assets/bower_components/angular-i18n/angular-locale_lkt-us.js +128 -0
  517. data/vendor/assets/bower_components/angular-i18n/angular-locale_lkt.js +128 -0
  518. data/vendor/assets/bower_components/angular-i18n/angular-locale_ln-ao.js +110 -0
  519. data/vendor/assets/bower_components/angular-i18n/angular-locale_ln-cd.js +110 -0
  520. data/vendor/assets/bower_components/angular-i18n/angular-locale_ln-cf.js +110 -0
  521. data/vendor/assets/bower_components/angular-i18n/angular-locale_ln-cg.js +110 -0
  522. data/vendor/assets/bower_components/angular-i18n/angular-locale_ln.js +110 -0
  523. data/vendor/assets/bower_components/angular-i18n/angular-locale_lo-la.js +110 -0
  524. data/vendor/assets/bower_components/angular-i18n/angular-locale_lo.js +110 -0
  525. data/vendor/assets/bower_components/angular-i18n/angular-locale_lt-lt.js +128 -0
  526. data/vendor/assets/bower_components/angular-i18n/angular-locale_lt.js +128 -0
  527. data/vendor/assets/bower_components/angular-i18n/angular-locale_lu-cd.js +128 -0
  528. data/vendor/assets/bower_components/angular-i18n/angular-locale_lu.js +128 -0
  529. data/vendor/assets/bower_components/angular-i18n/angular-locale_luo-ke.js +128 -0
  530. data/vendor/assets/bower_components/angular-i18n/angular-locale_luo.js +128 -0
  531. data/vendor/assets/bower_components/angular-i18n/angular-locale_luy-ke.js +128 -0
  532. data/vendor/assets/bower_components/angular-i18n/angular-locale_luy.js +128 -0
  533. data/vendor/assets/bower_components/angular-i18n/angular-locale_lv-lv.js +128 -0
  534. data/vendor/assets/bower_components/angular-i18n/angular-locale_lv.js +128 -0
  535. data/vendor/assets/bower_components/angular-i18n/angular-locale_mas-ke.js +128 -0
  536. data/vendor/assets/bower_components/angular-i18n/angular-locale_mas-tz.js +128 -0
  537. data/vendor/assets/bower_components/angular-i18n/angular-locale_mas.js +128 -0
  538. data/vendor/assets/bower_components/angular-i18n/angular-locale_mer-ke.js +128 -0
  539. data/vendor/assets/bower_components/angular-i18n/angular-locale_mer.js +128 -0
  540. data/vendor/assets/bower_components/angular-i18n/angular-locale_mfe-mu.js +128 -0
  541. data/vendor/assets/bower_components/angular-i18n/angular-locale_mfe.js +128 -0
  542. data/vendor/assets/bower_components/angular-i18n/angular-locale_mg-mg.js +128 -0
  543. data/vendor/assets/bower_components/angular-i18n/angular-locale_mg.js +128 -0
  544. data/vendor/assets/bower_components/angular-i18n/angular-locale_mgh-mz.js +128 -0
  545. data/vendor/assets/bower_components/angular-i18n/angular-locale_mgh.js +128 -0
  546. data/vendor/assets/bower_components/angular-i18n/angular-locale_mgo-cm.js +128 -0
  547. data/vendor/assets/bower_components/angular-i18n/angular-locale_mgo.js +128 -0
  548. data/vendor/assets/bower_components/angular-i18n/angular-locale_mk-mk.js +128 -0
  549. data/vendor/assets/bower_components/angular-i18n/angular-locale_mk.js +128 -0
  550. data/vendor/assets/bower_components/angular-i18n/angular-locale_ml-in.js +110 -0
  551. data/vendor/assets/bower_components/angular-i18n/angular-locale_ml.js +110 -0
  552. data/vendor/assets/bower_components/angular-i18n/angular-locale_mn-cyrl-mn.js +110 -0
  553. data/vendor/assets/bower_components/angular-i18n/angular-locale_mn-cyrl.js +110 -0
  554. data/vendor/assets/bower_components/angular-i18n/angular-locale_mn.js +110 -0
  555. data/vendor/assets/bower_components/angular-i18n/angular-locale_mr-in.js +110 -0
  556. data/vendor/assets/bower_components/angular-i18n/angular-locale_mr.js +110 -0
  557. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-bn.js +99 -0
  558. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-latn-bn.js +110 -0
  559. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-latn-my.js +110 -0
  560. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-latn-sg.js +110 -0
  561. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-latn.js +110 -0
  562. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms-my.js +99 -0
  563. data/vendor/assets/bower_components/angular-i18n/angular-locale_ms.js +110 -0
  564. data/vendor/assets/bower_components/angular-i18n/angular-locale_mt-mt.js +110 -0
  565. data/vendor/assets/bower_components/angular-i18n/angular-locale_mt.js +110 -0
  566. data/vendor/assets/bower_components/angular-i18n/angular-locale_mua-cm.js +128 -0
  567. data/vendor/assets/bower_components/angular-i18n/angular-locale_mua.js +128 -0
  568. data/vendor/assets/bower_components/angular-i18n/angular-locale_my-mm.js +110 -0
  569. data/vendor/assets/bower_components/angular-i18n/angular-locale_my.js +110 -0
  570. data/vendor/assets/bower_components/angular-i18n/angular-locale_naq-na.js +128 -0
  571. data/vendor/assets/bower_components/angular-i18n/angular-locale_naq.js +128 -0
  572. data/vendor/assets/bower_components/angular-i18n/angular-locale_nb-no.js +110 -0
  573. data/vendor/assets/bower_components/angular-i18n/angular-locale_nb-sj.js +110 -0
  574. data/vendor/assets/bower_components/angular-i18n/angular-locale_nb.js +110 -0
  575. data/vendor/assets/bower_components/angular-i18n/angular-locale_nd-zw.js +128 -0
  576. data/vendor/assets/bower_components/angular-i18n/angular-locale_nd.js +128 -0
  577. data/vendor/assets/bower_components/angular-i18n/angular-locale_ne-in.js +110 -0
  578. data/vendor/assets/bower_components/angular-i18n/angular-locale_ne-np.js +110 -0
  579. data/vendor/assets/bower_components/angular-i18n/angular-locale_ne.js +110 -0
  580. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-aw.js +128 -0
  581. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-be.js +128 -0
  582. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-bq.js +128 -0
  583. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-cw.js +128 -0
  584. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-nl.js +128 -0
  585. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-sr.js +128 -0
  586. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl-sx.js +128 -0
  587. data/vendor/assets/bower_components/angular-i18n/angular-locale_nl.js +128 -0
  588. data/vendor/assets/bower_components/angular-i18n/angular-locale_nmg-cm.js +128 -0
  589. data/vendor/assets/bower_components/angular-i18n/angular-locale_nmg.js +128 -0
  590. data/vendor/assets/bower_components/angular-i18n/angular-locale_nn-no.js +128 -0
  591. data/vendor/assets/bower_components/angular-i18n/angular-locale_nn.js +128 -0
  592. data/vendor/assets/bower_components/angular-i18n/angular-locale_nnh-cm.js +128 -0
  593. data/vendor/assets/bower_components/angular-i18n/angular-locale_nnh.js +128 -0
  594. data/vendor/assets/bower_components/angular-i18n/angular-locale_no-no.js +110 -0
  595. data/vendor/assets/bower_components/angular-i18n/angular-locale_no.js +110 -0
  596. data/vendor/assets/bower_components/angular-i18n/angular-locale_nr-za.js +128 -0
  597. data/vendor/assets/bower_components/angular-i18n/angular-locale_nr.js +128 -0
  598. data/vendor/assets/bower_components/angular-i18n/angular-locale_nso-za.js +128 -0
  599. data/vendor/assets/bower_components/angular-i18n/angular-locale_nso.js +128 -0
  600. data/vendor/assets/bower_components/angular-i18n/angular-locale_nus-sd.js +128 -0
  601. data/vendor/assets/bower_components/angular-i18n/angular-locale_nus.js +128 -0
  602. data/vendor/assets/bower_components/angular-i18n/angular-locale_nyn-ug.js +128 -0
  603. data/vendor/assets/bower_components/angular-i18n/angular-locale_nyn.js +128 -0
  604. data/vendor/assets/bower_components/angular-i18n/angular-locale_om-et.js +128 -0
  605. data/vendor/assets/bower_components/angular-i18n/angular-locale_om-ke.js +128 -0
  606. data/vendor/assets/bower_components/angular-i18n/angular-locale_om.js +128 -0
  607. data/vendor/assets/bower_components/angular-i18n/angular-locale_or-in.js +110 -0
  608. data/vendor/assets/bower_components/angular-i18n/angular-locale_or.js +110 -0
  609. data/vendor/assets/bower_components/angular-i18n/angular-locale_os-ge.js +128 -0
  610. data/vendor/assets/bower_components/angular-i18n/angular-locale_os-ru.js +128 -0
  611. data/vendor/assets/bower_components/angular-i18n/angular-locale_os.js +128 -0
  612. data/vendor/assets/bower_components/angular-i18n/angular-locale_pa-arab-pk.js +110 -0
  613. data/vendor/assets/bower_components/angular-i18n/angular-locale_pa-arab.js +110 -0
  614. data/vendor/assets/bower_components/angular-i18n/angular-locale_pa-guru-in.js +110 -0
  615. data/vendor/assets/bower_components/angular-i18n/angular-locale_pa-guru.js +110 -0
  616. data/vendor/assets/bower_components/angular-i18n/angular-locale_pa.js +110 -0
  617. data/vendor/assets/bower_components/angular-i18n/angular-locale_pl-pl.js +128 -0
  618. data/vendor/assets/bower_components/angular-i18n/angular-locale_pl.js +128 -0
  619. data/vendor/assets/bower_components/angular-i18n/angular-locale_ps-af.js +128 -0
  620. data/vendor/assets/bower_components/angular-i18n/angular-locale_ps.js +128 -0
  621. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-ao.js +110 -0
  622. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-br.js +110 -0
  623. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-cv.js +110 -0
  624. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-gw.js +110 -0
  625. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-mo.js +110 -0
  626. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-mz.js +110 -0
  627. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-pt.js +110 -0
  628. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-st.js +110 -0
  629. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt-tl.js +110 -0
  630. data/vendor/assets/bower_components/angular-i18n/angular-locale_pt.js +110 -0
  631. data/vendor/assets/bower_components/angular-i18n/angular-locale_qu-bo.js +128 -0
  632. data/vendor/assets/bower_components/angular-i18n/angular-locale_qu-ec.js +128 -0
  633. data/vendor/assets/bower_components/angular-i18n/angular-locale_qu-pe.js +128 -0
  634. data/vendor/assets/bower_components/angular-i18n/angular-locale_qu.js +128 -0
  635. data/vendor/assets/bower_components/angular-i18n/angular-locale_rm-ch.js +128 -0
  636. data/vendor/assets/bower_components/angular-i18n/angular-locale_rm.js +128 -0
  637. data/vendor/assets/bower_components/angular-i18n/angular-locale_rn-bi.js +128 -0
  638. data/vendor/assets/bower_components/angular-i18n/angular-locale_rn.js +128 -0
  639. data/vendor/assets/bower_components/angular-i18n/angular-locale_ro-md.js +128 -0
  640. data/vendor/assets/bower_components/angular-i18n/angular-locale_ro-ro.js +128 -0
  641. data/vendor/assets/bower_components/angular-i18n/angular-locale_ro.js +128 -0
  642. data/vendor/assets/bower_components/angular-i18n/angular-locale_rof-tz.js +128 -0
  643. data/vendor/assets/bower_components/angular-i18n/angular-locale_rof.js +128 -0
  644. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-by.js +128 -0
  645. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-kg.js +128 -0
  646. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-kz.js +128 -0
  647. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-md.js +128 -0
  648. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-ru.js +128 -0
  649. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru-ua.js +128 -0
  650. data/vendor/assets/bower_components/angular-i18n/angular-locale_ru.js +128 -0
  651. data/vendor/assets/bower_components/angular-i18n/angular-locale_rw-rw.js +128 -0
  652. data/vendor/assets/bower_components/angular-i18n/angular-locale_rw.js +128 -0
  653. data/vendor/assets/bower_components/angular-i18n/angular-locale_rwk-tz.js +128 -0
  654. data/vendor/assets/bower_components/angular-i18n/angular-locale_rwk.js +128 -0
  655. data/vendor/assets/bower_components/angular-i18n/angular-locale_sah-ru.js +128 -0
  656. data/vendor/assets/bower_components/angular-i18n/angular-locale_sah.js +128 -0
  657. data/vendor/assets/bower_components/angular-i18n/angular-locale_saq-ke.js +128 -0
  658. data/vendor/assets/bower_components/angular-i18n/angular-locale_saq.js +128 -0
  659. data/vendor/assets/bower_components/angular-i18n/angular-locale_sbp-tz.js +128 -0
  660. data/vendor/assets/bower_components/angular-i18n/angular-locale_sbp.js +128 -0
  661. data/vendor/assets/bower_components/angular-i18n/angular-locale_se-fi.js +128 -0
  662. data/vendor/assets/bower_components/angular-i18n/angular-locale_se-no.js +128 -0
  663. data/vendor/assets/bower_components/angular-i18n/angular-locale_se-se.js +128 -0
  664. data/vendor/assets/bower_components/angular-i18n/angular-locale_se.js +128 -0
  665. data/vendor/assets/bower_components/angular-i18n/angular-locale_seh-mz.js +128 -0
  666. data/vendor/assets/bower_components/angular-i18n/angular-locale_seh.js +128 -0
  667. data/vendor/assets/bower_components/angular-i18n/angular-locale_ses-ml.js +128 -0
  668. data/vendor/assets/bower_components/angular-i18n/angular-locale_ses.js +128 -0
  669. data/vendor/assets/bower_components/angular-i18n/angular-locale_sg-cf.js +128 -0
  670. data/vendor/assets/bower_components/angular-i18n/angular-locale_sg.js +128 -0
  671. data/vendor/assets/bower_components/angular-i18n/angular-locale_shi-latn-ma.js +128 -0
  672. data/vendor/assets/bower_components/angular-i18n/angular-locale_shi-latn.js +128 -0
  673. data/vendor/assets/bower_components/angular-i18n/angular-locale_shi-tfng-ma.js +128 -0
  674. data/vendor/assets/bower_components/angular-i18n/angular-locale_shi-tfng.js +128 -0
  675. data/vendor/assets/bower_components/angular-i18n/angular-locale_shi.js +128 -0
  676. data/vendor/assets/bower_components/angular-i18n/angular-locale_si-lk.js +128 -0
  677. data/vendor/assets/bower_components/angular-i18n/angular-locale_si.js +128 -0
  678. data/vendor/assets/bower_components/angular-i18n/angular-locale_sk-sk.js +128 -0
  679. data/vendor/assets/bower_components/angular-i18n/angular-locale_sk.js +128 -0
  680. data/vendor/assets/bower_components/angular-i18n/angular-locale_sl-si.js +128 -0
  681. data/vendor/assets/bower_components/angular-i18n/angular-locale_sl.js +128 -0
  682. data/vendor/assets/bower_components/angular-i18n/angular-locale_smn-fi.js +128 -0
  683. data/vendor/assets/bower_components/angular-i18n/angular-locale_smn.js +128 -0
  684. data/vendor/assets/bower_components/angular-i18n/angular-locale_sn-zw.js +128 -0
  685. data/vendor/assets/bower_components/angular-i18n/angular-locale_sn.js +128 -0
  686. data/vendor/assets/bower_components/angular-i18n/angular-locale_so-dj.js +128 -0
  687. data/vendor/assets/bower_components/angular-i18n/angular-locale_so-et.js +128 -0
  688. data/vendor/assets/bower_components/angular-i18n/angular-locale_so-ke.js +128 -0
  689. data/vendor/assets/bower_components/angular-i18n/angular-locale_so-so.js +128 -0
  690. data/vendor/assets/bower_components/angular-i18n/angular-locale_so.js +128 -0
  691. data/vendor/assets/bower_components/angular-i18n/angular-locale_sq-al.js +110 -0
  692. data/vendor/assets/bower_components/angular-i18n/angular-locale_sq-mk.js +110 -0
  693. data/vendor/assets/bower_components/angular-i18n/angular-locale_sq-xk.js +110 -0
  694. data/vendor/assets/bower_components/angular-i18n/angular-locale_sq.js +110 -0
  695. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-cyrl-ba.js +128 -0
  696. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-cyrl-me.js +128 -0
  697. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-cyrl-rs.js +128 -0
  698. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-cyrl-xk.js +128 -0
  699. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-cyrl.js +128 -0
  700. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-latn-ba.js +128 -0
  701. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-latn-me.js +128 -0
  702. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-latn-rs.js +128 -0
  703. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-latn-xk.js +128 -0
  704. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr-latn.js +128 -0
  705. data/vendor/assets/bower_components/angular-i18n/angular-locale_sr.js +128 -0
  706. data/vendor/assets/bower_components/angular-i18n/angular-locale_ss-sz.js +128 -0
  707. data/vendor/assets/bower_components/angular-i18n/angular-locale_ss-za.js +128 -0
  708. data/vendor/assets/bower_components/angular-i18n/angular-locale_ss.js +128 -0
  709. data/vendor/assets/bower_components/angular-i18n/angular-locale_ssy-er.js +128 -0
  710. data/vendor/assets/bower_components/angular-i18n/angular-locale_ssy.js +128 -0
  711. data/vendor/assets/bower_components/angular-i18n/angular-locale_st-ls.js +115 -0
  712. data/vendor/assets/bower_components/angular-i18n/angular-locale_st-za.js +115 -0
  713. data/vendor/assets/bower_components/angular-i18n/angular-locale_st.js +115 -0
  714. data/vendor/assets/bower_components/angular-i18n/angular-locale_sv-ax.js +128 -0
  715. data/vendor/assets/bower_components/angular-i18n/angular-locale_sv-fi.js +128 -0
  716. data/vendor/assets/bower_components/angular-i18n/angular-locale_sv-se.js +128 -0
  717. data/vendor/assets/bower_components/angular-i18n/angular-locale_sv.js +128 -0
  718. data/vendor/assets/bower_components/angular-i18n/angular-locale_sw-cd.js +128 -0
  719. data/vendor/assets/bower_components/angular-i18n/angular-locale_sw-ke.js +128 -0
  720. data/vendor/assets/bower_components/angular-i18n/angular-locale_sw-tz.js +128 -0
  721. data/vendor/assets/bower_components/angular-i18n/angular-locale_sw-ug.js +128 -0
  722. data/vendor/assets/bower_components/angular-i18n/angular-locale_sw.js +128 -0
  723. data/vendor/assets/bower_components/angular-i18n/angular-locale_swc-cd.js +128 -0
  724. data/vendor/assets/bower_components/angular-i18n/angular-locale_swc.js +128 -0
  725. data/vendor/assets/bower_components/angular-i18n/angular-locale_ta-in.js +110 -0
  726. data/vendor/assets/bower_components/angular-i18n/angular-locale_ta-lk.js +110 -0
  727. data/vendor/assets/bower_components/angular-i18n/angular-locale_ta-my.js +110 -0
  728. data/vendor/assets/bower_components/angular-i18n/angular-locale_ta-sg.js +110 -0
  729. data/vendor/assets/bower_components/angular-i18n/angular-locale_ta.js +110 -0
  730. data/vendor/assets/bower_components/angular-i18n/angular-locale_te-in.js +110 -0
  731. data/vendor/assets/bower_components/angular-i18n/angular-locale_te.js +110 -0
  732. data/vendor/assets/bower_components/angular-i18n/angular-locale_teo-ke.js +128 -0
  733. data/vendor/assets/bower_components/angular-i18n/angular-locale_teo-ug.js +128 -0
  734. data/vendor/assets/bower_components/angular-i18n/angular-locale_teo.js +128 -0
  735. data/vendor/assets/bower_components/angular-i18n/angular-locale_tg-cyrl-tj.js +115 -0
  736. data/vendor/assets/bower_components/angular-i18n/angular-locale_tg-cyrl.js +115 -0
  737. data/vendor/assets/bower_components/angular-i18n/angular-locale_tg.js +115 -0
  738. data/vendor/assets/bower_components/angular-i18n/angular-locale_th-th.js +110 -0
  739. data/vendor/assets/bower_components/angular-i18n/angular-locale_th.js +110 -0
  740. data/vendor/assets/bower_components/angular-i18n/angular-locale_ti-er.js +128 -0
  741. data/vendor/assets/bower_components/angular-i18n/angular-locale_ti-et.js +128 -0
  742. data/vendor/assets/bower_components/angular-i18n/angular-locale_ti.js +128 -0
  743. data/vendor/assets/bower_components/angular-i18n/angular-locale_tig-er.js +115 -0
  744. data/vendor/assets/bower_components/angular-i18n/angular-locale_tig.js +115 -0
  745. data/vendor/assets/bower_components/angular-i18n/angular-locale_tl.js +128 -0
  746. data/vendor/assets/bower_components/angular-i18n/angular-locale_tn-bw.js +128 -0
  747. data/vendor/assets/bower_components/angular-i18n/angular-locale_tn-za.js +128 -0
  748. data/vendor/assets/bower_components/angular-i18n/angular-locale_tn.js +128 -0
  749. data/vendor/assets/bower_components/angular-i18n/angular-locale_to-to.js +128 -0
  750. data/vendor/assets/bower_components/angular-i18n/angular-locale_to.js +128 -0
  751. data/vendor/assets/bower_components/angular-i18n/angular-locale_tr-cy.js +110 -0
  752. data/vendor/assets/bower_components/angular-i18n/angular-locale_tr-tr.js +110 -0
  753. data/vendor/assets/bower_components/angular-i18n/angular-locale_tr.js +110 -0
  754. data/vendor/assets/bower_components/angular-i18n/angular-locale_ts-za.js +128 -0
  755. data/vendor/assets/bower_components/angular-i18n/angular-locale_ts.js +128 -0
  756. data/vendor/assets/bower_components/angular-i18n/angular-locale_twq-ne.js +128 -0
  757. data/vendor/assets/bower_components/angular-i18n/angular-locale_twq.js +128 -0
  758. data/vendor/assets/bower_components/angular-i18n/angular-locale_tzm-latn-ma.js +128 -0
  759. data/vendor/assets/bower_components/angular-i18n/angular-locale_tzm-latn.js +128 -0
  760. data/vendor/assets/bower_components/angular-i18n/angular-locale_tzm.js +128 -0
  761. data/vendor/assets/bower_components/angular-i18n/angular-locale_ug-arab-cn.js +128 -0
  762. data/vendor/assets/bower_components/angular-i18n/angular-locale_ug-arab.js +128 -0
  763. data/vendor/assets/bower_components/angular-i18n/angular-locale_ug.js +128 -0
  764. data/vendor/assets/bower_components/angular-i18n/angular-locale_uk-ua.js +128 -0
  765. data/vendor/assets/bower_components/angular-i18n/angular-locale_uk.js +128 -0
  766. data/vendor/assets/bower_components/angular-i18n/angular-locale_ur-in.js +128 -0
  767. data/vendor/assets/bower_components/angular-i18n/angular-locale_ur-pk.js +128 -0
  768. data/vendor/assets/bower_components/angular-i18n/angular-locale_ur.js +128 -0
  769. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-arab-af.js +110 -0
  770. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-arab.js +110 -0
  771. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-cyrl-uz.js +110 -0
  772. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-cyrl.js +110 -0
  773. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-latn-uz.js +110 -0
  774. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz-latn.js +110 -0
  775. data/vendor/assets/bower_components/angular-i18n/angular-locale_uz.js +110 -0
  776. data/vendor/assets/bower_components/angular-i18n/angular-locale_vai-latn-lr.js +128 -0
  777. data/vendor/assets/bower_components/angular-i18n/angular-locale_vai-latn.js +128 -0
  778. data/vendor/assets/bower_components/angular-i18n/angular-locale_vai-vaii-lr.js +128 -0
  779. data/vendor/assets/bower_components/angular-i18n/angular-locale_vai-vaii.js +128 -0
  780. data/vendor/assets/bower_components/angular-i18n/angular-locale_vai.js +128 -0
  781. data/vendor/assets/bower_components/angular-i18n/angular-locale_ve-za.js +128 -0
  782. data/vendor/assets/bower_components/angular-i18n/angular-locale_ve.js +128 -0
  783. data/vendor/assets/bower_components/angular-i18n/angular-locale_vi-vn.js +110 -0
  784. data/vendor/assets/bower_components/angular-i18n/angular-locale_vi.js +110 -0
  785. data/vendor/assets/bower_components/angular-i18n/angular-locale_vo-001.js +128 -0
  786. data/vendor/assets/bower_components/angular-i18n/angular-locale_vo.js +128 -0
  787. data/vendor/assets/bower_components/angular-i18n/angular-locale_vun-tz.js +128 -0
  788. data/vendor/assets/bower_components/angular-i18n/angular-locale_vun.js +128 -0
  789. data/vendor/assets/bower_components/angular-i18n/angular-locale_wae-ch.js +128 -0
  790. data/vendor/assets/bower_components/angular-i18n/angular-locale_wae.js +128 -0
  791. data/vendor/assets/bower_components/angular-i18n/angular-locale_wal-et.js +115 -0
  792. data/vendor/assets/bower_components/angular-i18n/angular-locale_wal.js +115 -0
  793. data/vendor/assets/bower_components/angular-i18n/angular-locale_xh-za.js +115 -0
  794. data/vendor/assets/bower_components/angular-i18n/angular-locale_xh.js +115 -0
  795. data/vendor/assets/bower_components/angular-i18n/angular-locale_xog-ug.js +128 -0
  796. data/vendor/assets/bower_components/angular-i18n/angular-locale_xog.js +128 -0
  797. data/vendor/assets/bower_components/angular-i18n/angular-locale_yav-cm.js +128 -0
  798. data/vendor/assets/bower_components/angular-i18n/angular-locale_yav.js +128 -0
  799. data/vendor/assets/bower_components/angular-i18n/angular-locale_yi-001.js +128 -0
  800. data/vendor/assets/bower_components/angular-i18n/angular-locale_yi.js +128 -0
  801. data/vendor/assets/bower_components/angular-i18n/angular-locale_yo-bj.js +128 -0
  802. data/vendor/assets/bower_components/angular-i18n/angular-locale_yo-ng.js +128 -0
  803. data/vendor/assets/bower_components/angular-i18n/angular-locale_yo.js +128 -0
  804. data/vendor/assets/bower_components/angular-i18n/angular-locale_zgh-ma.js +128 -0
  805. data/vendor/assets/bower_components/angular-i18n/angular-locale_zgh.js +128 -0
  806. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-cn.js +110 -0
  807. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hans-cn.js +110 -0
  808. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hans-hk.js +110 -0
  809. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hans-mo.js +110 -0
  810. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hans-sg.js +110 -0
  811. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hans.js +110 -0
  812. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hant-hk.js +110 -0
  813. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hant-mo.js +110 -0
  814. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hant-tw.js +110 -0
  815. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hant.js +110 -0
  816. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-hk.js +110 -0
  817. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh-tw.js +110 -0
  818. data/vendor/assets/bower_components/angular-i18n/angular-locale_zh.js +110 -0
  819. data/vendor/assets/bower_components/angular-i18n/angular-locale_zu-za.js +110 -0
  820. data/vendor/assets/bower_components/angular-i18n/angular-locale_zu.js +110 -0
  821. data/vendor/assets/bower_components/angular-i18n/ar-001.js +2 -0
  822. data/vendor/assets/bower_components/angular-i18n/ar-ae.js +2 -0
  823. data/vendor/assets/bower_components/angular-i18n/ar-bh.js +2 -0
  824. data/vendor/assets/bower_components/angular-i18n/ar-dj.js +2 -0
  825. data/vendor/assets/bower_components/angular-i18n/ar-dz.js +2 -0
  826. data/vendor/assets/bower_components/angular-i18n/ar-eg.js +2 -0
  827. data/vendor/assets/bower_components/angular-i18n/ar-eh.js +2 -0
  828. data/vendor/assets/bower_components/angular-i18n/ar-er.js +2 -0
  829. data/vendor/assets/bower_components/angular-i18n/ar-il.js +2 -0
  830. data/vendor/assets/bower_components/angular-i18n/ar-iq.js +2 -0
  831. data/vendor/assets/bower_components/angular-i18n/ar-jo.js +2 -0
  832. data/vendor/assets/bower_components/angular-i18n/ar-km.js +2 -0
  833. data/vendor/assets/bower_components/angular-i18n/ar-kw.js +2 -0
  834. data/vendor/assets/bower_components/angular-i18n/ar-lb.js +2 -0
  835. data/vendor/assets/bower_components/angular-i18n/ar-ly.js +2 -0
  836. data/vendor/assets/bower_components/angular-i18n/ar-ma.js +2 -0
  837. data/vendor/assets/bower_components/angular-i18n/ar-mr.js +2 -0
  838. data/vendor/assets/bower_components/angular-i18n/ar-om.js +2 -0
  839. data/vendor/assets/bower_components/angular-i18n/ar-ps.js +2 -0
  840. data/vendor/assets/bower_components/angular-i18n/ar-qa.js +2 -0
  841. data/vendor/assets/bower_components/angular-i18n/ar-sa.js +2 -0
  842. data/vendor/assets/bower_components/angular-i18n/ar-sd.js +2 -0
  843. data/vendor/assets/bower_components/angular-i18n/ar-so.js +2 -0
  844. data/vendor/assets/bower_components/angular-i18n/ar-ss.js +2 -0
  845. data/vendor/assets/bower_components/angular-i18n/ar-sy.js +2 -0
  846. data/vendor/assets/bower_components/angular-i18n/ar-td.js +2 -0
  847. data/vendor/assets/bower_components/angular-i18n/ar-tn.js +2 -0
  848. data/vendor/assets/bower_components/angular-i18n/ar-ye.js +2 -0
  849. data/vendor/assets/bower_components/angular-i18n/ar.js +2 -0
  850. data/vendor/assets/bower_components/angular-i18n/as-in.js +2 -0
  851. data/vendor/assets/bower_components/angular-i18n/as.js +2 -0
  852. data/vendor/assets/bower_components/angular-i18n/asa-tz.js +2 -0
  853. data/vendor/assets/bower_components/angular-i18n/asa.js +2 -0
  854. data/vendor/assets/bower_components/angular-i18n/ast-es.js +2 -0
  855. data/vendor/assets/bower_components/angular-i18n/ast.js +2 -0
  856. data/vendor/assets/bower_components/angular-i18n/az-cyrl-az.js +2 -0
  857. data/vendor/assets/bower_components/angular-i18n/az-cyrl.js +2 -0
  858. data/vendor/assets/bower_components/angular-i18n/az-latn-az.js +2 -0
  859. data/vendor/assets/bower_components/angular-i18n/az-latn.js +2 -0
  860. data/vendor/assets/bower_components/angular-i18n/az.js +2 -0
  861. data/vendor/assets/bower_components/angular-i18n/bas-cm.js +2 -0
  862. data/vendor/assets/bower_components/angular-i18n/bas.js +2 -0
  863. data/vendor/assets/bower_components/angular-i18n/be-by.js +2 -0
  864. data/vendor/assets/bower_components/angular-i18n/be.js +2 -0
  865. data/vendor/assets/bower_components/angular-i18n/bem-zm.js +2 -0
  866. data/vendor/assets/bower_components/angular-i18n/bem.js +2 -0
  867. data/vendor/assets/bower_components/angular-i18n/bez-tz.js +2 -0
  868. data/vendor/assets/bower_components/angular-i18n/bez.js +2 -0
  869. data/vendor/assets/bower_components/angular-i18n/bg-bg.js +2 -0
  870. data/vendor/assets/bower_components/angular-i18n/bg.js +2 -0
  871. data/vendor/assets/bower_components/angular-i18n/bm-latn-ml.js +2 -0
  872. data/vendor/assets/bower_components/angular-i18n/bm-latn.js +2 -0
  873. data/vendor/assets/bower_components/angular-i18n/bm-ml.js +2 -0
  874. data/vendor/assets/bower_components/angular-i18n/bm.js +2 -0
  875. data/vendor/assets/bower_components/angular-i18n/bn-bd.js +2 -0
  876. data/vendor/assets/bower_components/angular-i18n/bn-in.js +2 -0
  877. data/vendor/assets/bower_components/angular-i18n/bn.js +2 -0
  878. data/vendor/assets/bower_components/angular-i18n/bo-cn.js +2 -0
  879. data/vendor/assets/bower_components/angular-i18n/bo-in.js +2 -0
  880. data/vendor/assets/bower_components/angular-i18n/bo.js +2 -0
  881. data/vendor/assets/bower_components/angular-i18n/bower.json +10 -0
  882. data/vendor/assets/bower_components/angular-i18n/br-fr.js +2 -0
  883. data/vendor/assets/bower_components/angular-i18n/br.js +2 -0
  884. data/vendor/assets/bower_components/angular-i18n/brx-in.js +2 -0
  885. data/vendor/assets/bower_components/angular-i18n/brx.js +2 -0
  886. data/vendor/assets/bower_components/angular-i18n/bs-cyrl-ba.js +2 -0
  887. data/vendor/assets/bower_components/angular-i18n/bs-cyrl.js +2 -0
  888. data/vendor/assets/bower_components/angular-i18n/bs-latn-ba.js +2 -0
  889. data/vendor/assets/bower_components/angular-i18n/bs-latn.js +2 -0
  890. data/vendor/assets/bower_components/angular-i18n/bs.js +2 -0
  891. data/vendor/assets/bower_components/angular-i18n/byn-er.js +2 -0
  892. data/vendor/assets/bower_components/angular-i18n/byn.js +2 -0
  893. data/vendor/assets/bower_components/angular-i18n/ca-ad.js +2 -0
  894. data/vendor/assets/bower_components/angular-i18n/ca-es-valencia.js +2 -0
  895. data/vendor/assets/bower_components/angular-i18n/ca-es.js +2 -0
  896. data/vendor/assets/bower_components/angular-i18n/ca-fr.js +2 -0
  897. data/vendor/assets/bower_components/angular-i18n/ca-it.js +2 -0
  898. data/vendor/assets/bower_components/angular-i18n/ca.js +2 -0
  899. data/vendor/assets/bower_components/angular-i18n/cgg-ug.js +2 -0
  900. data/vendor/assets/bower_components/angular-i18n/cgg.js +2 -0
  901. data/vendor/assets/bower_components/angular-i18n/chr-us.js +2 -0
  902. data/vendor/assets/bower_components/angular-i18n/chr.js +2 -0
  903. data/vendor/assets/bower_components/angular-i18n/ckb-arab-iq.js +2 -0
  904. data/vendor/assets/bower_components/angular-i18n/ckb-arab-ir.js +2 -0
  905. data/vendor/assets/bower_components/angular-i18n/ckb-arab.js +2 -0
  906. data/vendor/assets/bower_components/angular-i18n/ckb-iq.js +2 -0
  907. data/vendor/assets/bower_components/angular-i18n/ckb-ir.js +2 -0
  908. data/vendor/assets/bower_components/angular-i18n/ckb-latn-iq.js +2 -0
  909. data/vendor/assets/bower_components/angular-i18n/ckb-latn.js +2 -0
  910. data/vendor/assets/bower_components/angular-i18n/ckb.js +2 -0
  911. data/vendor/assets/bower_components/angular-i18n/cs-cz.js +2 -0
  912. data/vendor/assets/bower_components/angular-i18n/cs.js +2 -0
  913. data/vendor/assets/bower_components/angular-i18n/cy-gb.js +2 -0
  914. data/vendor/assets/bower_components/angular-i18n/cy.js +2 -0
  915. data/vendor/assets/bower_components/angular-i18n/da-dk.js +2 -0
  916. data/vendor/assets/bower_components/angular-i18n/da-gl.js +2 -0
  917. data/vendor/assets/bower_components/angular-i18n/da.js +2 -0
  918. data/vendor/assets/bower_components/angular-i18n/dav-ke.js +2 -0
  919. data/vendor/assets/bower_components/angular-i18n/dav.js +2 -0
  920. data/vendor/assets/bower_components/angular-i18n/de-at.js +2 -0
  921. data/vendor/assets/bower_components/angular-i18n/de-be.js +2 -0
  922. data/vendor/assets/bower_components/angular-i18n/de-ch.js +2 -0
  923. data/vendor/assets/bower_components/angular-i18n/de-de.js +2 -0
  924. data/vendor/assets/bower_components/angular-i18n/de-li.js +2 -0
  925. data/vendor/assets/bower_components/angular-i18n/de-lu.js +2 -0
  926. data/vendor/assets/bower_components/angular-i18n/de.js +2 -0
  927. data/vendor/assets/bower_components/angular-i18n/dje-ne.js +2 -0
  928. data/vendor/assets/bower_components/angular-i18n/dje.js +2 -0
  929. data/vendor/assets/bower_components/angular-i18n/dsb-de.js +2 -0
  930. data/vendor/assets/bower_components/angular-i18n/dsb.js +2 -0
  931. data/vendor/assets/bower_components/angular-i18n/dua-cm.js +2 -0
  932. data/vendor/assets/bower_components/angular-i18n/dua.js +2 -0
  933. data/vendor/assets/bower_components/angular-i18n/dyo-sn.js +2 -0
  934. data/vendor/assets/bower_components/angular-i18n/dyo.js +2 -0
  935. data/vendor/assets/bower_components/angular-i18n/dz-bt.js +2 -0
  936. data/vendor/assets/bower_components/angular-i18n/dz.js +2 -0
  937. data/vendor/assets/bower_components/angular-i18n/ebu-ke.js +2 -0
  938. data/vendor/assets/bower_components/angular-i18n/ebu.js +2 -0
  939. data/vendor/assets/bower_components/angular-i18n/ee-gh.js +2 -0
  940. data/vendor/assets/bower_components/angular-i18n/ee-tg.js +2 -0
  941. data/vendor/assets/bower_components/angular-i18n/ee.js +2 -0
  942. data/vendor/assets/bower_components/angular-i18n/el-cy.js +2 -0
  943. data/vendor/assets/bower_components/angular-i18n/el-gr.js +2 -0
  944. data/vendor/assets/bower_components/angular-i18n/el.js +2 -0
  945. data/vendor/assets/bower_components/angular-i18n/en-001.js +2 -0
  946. data/vendor/assets/bower_components/angular-i18n/en-150.js +2 -0
  947. data/vendor/assets/bower_components/angular-i18n/en-ag.js +2 -0
  948. data/vendor/assets/bower_components/angular-i18n/en-ai.js +2 -0
  949. data/vendor/assets/bower_components/angular-i18n/en-as.js +2 -0
  950. data/vendor/assets/bower_components/angular-i18n/en-au.js +2 -0
  951. data/vendor/assets/bower_components/angular-i18n/en-bb.js +2 -0
  952. data/vendor/assets/bower_components/angular-i18n/en-be.js +2 -0
  953. data/vendor/assets/bower_components/angular-i18n/en-bm.js +2 -0
  954. data/vendor/assets/bower_components/angular-i18n/en-bs.js +2 -0
  955. data/vendor/assets/bower_components/angular-i18n/en-bw.js +2 -0
  956. data/vendor/assets/bower_components/angular-i18n/en-bz.js +2 -0
  957. data/vendor/assets/bower_components/angular-i18n/en-ca.js +2 -0
  958. data/vendor/assets/bower_components/angular-i18n/en-cc.js +2 -0
  959. data/vendor/assets/bower_components/angular-i18n/en-ck.js +2 -0
  960. data/vendor/assets/bower_components/angular-i18n/en-cm.js +2 -0
  961. data/vendor/assets/bower_components/angular-i18n/en-cx.js +2 -0
  962. data/vendor/assets/bower_components/angular-i18n/en-dg.js +2 -0
  963. data/vendor/assets/bower_components/angular-i18n/en-dm.js +2 -0
  964. data/vendor/assets/bower_components/angular-i18n/en-dsrt-us.js +2 -0
  965. data/vendor/assets/bower_components/angular-i18n/en-dsrt.js +2 -0
  966. data/vendor/assets/bower_components/angular-i18n/en-er.js +2 -0
  967. data/vendor/assets/bower_components/angular-i18n/en-fj.js +2 -0
  968. data/vendor/assets/bower_components/angular-i18n/en-fk.js +2 -0
  969. data/vendor/assets/bower_components/angular-i18n/en-fm.js +2 -0
  970. data/vendor/assets/bower_components/angular-i18n/en-gb.js +2 -0
  971. data/vendor/assets/bower_components/angular-i18n/en-gd.js +2 -0
  972. data/vendor/assets/bower_components/angular-i18n/en-gg.js +2 -0
  973. data/vendor/assets/bower_components/angular-i18n/en-gh.js +2 -0
  974. data/vendor/assets/bower_components/angular-i18n/en-gi.js +2 -0
  975. data/vendor/assets/bower_components/angular-i18n/en-gm.js +2 -0
  976. data/vendor/assets/bower_components/angular-i18n/en-gu.js +2 -0
  977. data/vendor/assets/bower_components/angular-i18n/en-gy.js +2 -0
  978. data/vendor/assets/bower_components/angular-i18n/en-hk.js +2 -0
  979. data/vendor/assets/bower_components/angular-i18n/en-ie.js +2 -0
  980. data/vendor/assets/bower_components/angular-i18n/en-im.js +2 -0
  981. data/vendor/assets/bower_components/angular-i18n/en-in.js +2 -0
  982. data/vendor/assets/bower_components/angular-i18n/en-io.js +2 -0
  983. data/vendor/assets/bower_components/angular-i18n/en-iso.js +2 -0
  984. data/vendor/assets/bower_components/angular-i18n/en-je.js +2 -0
  985. data/vendor/assets/bower_components/angular-i18n/en-jm.js +2 -0
  986. data/vendor/assets/bower_components/angular-i18n/en-ke.js +2 -0
  987. data/vendor/assets/bower_components/angular-i18n/en-ki.js +2 -0
  988. data/vendor/assets/bower_components/angular-i18n/en-kn.js +2 -0
  989. data/vendor/assets/bower_components/angular-i18n/en-ky.js +2 -0
  990. data/vendor/assets/bower_components/angular-i18n/en-lc.js +2 -0
  991. data/vendor/assets/bower_components/angular-i18n/en-lr.js +2 -0
  992. data/vendor/assets/bower_components/angular-i18n/en-ls.js +2 -0
  993. data/vendor/assets/bower_components/angular-i18n/en-mg.js +2 -0
  994. data/vendor/assets/bower_components/angular-i18n/en-mh.js +2 -0
  995. data/vendor/assets/bower_components/angular-i18n/en-mo.js +2 -0
  996. data/vendor/assets/bower_components/angular-i18n/en-mp.js +2 -0
  997. data/vendor/assets/bower_components/angular-i18n/en-ms.js +2 -0
  998. data/vendor/assets/bower_components/angular-i18n/en-mt.js +2 -0
  999. data/vendor/assets/bower_components/angular-i18n/en-mu.js +2 -0
  1000. data/vendor/assets/bower_components/angular-i18n/en-mw.js +2 -0
  1001. data/vendor/assets/bower_components/angular-i18n/en-my.js +2 -0
  1002. data/vendor/assets/bower_components/angular-i18n/en-na.js +2 -0
  1003. data/vendor/assets/bower_components/angular-i18n/en-nf.js +2 -0
  1004. data/vendor/assets/bower_components/angular-i18n/en-ng.js +2 -0
  1005. data/vendor/assets/bower_components/angular-i18n/en-nr.js +2 -0
  1006. data/vendor/assets/bower_components/angular-i18n/en-nu.js +2 -0
  1007. data/vendor/assets/bower_components/angular-i18n/en-nz.js +2 -0
  1008. data/vendor/assets/bower_components/angular-i18n/en-pg.js +2 -0
  1009. data/vendor/assets/bower_components/angular-i18n/en-ph.js +2 -0
  1010. data/vendor/assets/bower_components/angular-i18n/en-pk.js +2 -0
  1011. data/vendor/assets/bower_components/angular-i18n/en-pn.js +2 -0
  1012. data/vendor/assets/bower_components/angular-i18n/en-pr.js +2 -0
  1013. data/vendor/assets/bower_components/angular-i18n/en-pw.js +2 -0
  1014. data/vendor/assets/bower_components/angular-i18n/en-rw.js +2 -0
  1015. data/vendor/assets/bower_components/angular-i18n/en-sb.js +2 -0
  1016. data/vendor/assets/bower_components/angular-i18n/en-sc.js +2 -0
  1017. data/vendor/assets/bower_components/angular-i18n/en-sd.js +2 -0
  1018. data/vendor/assets/bower_components/angular-i18n/en-sg.js +2 -0
  1019. data/vendor/assets/bower_components/angular-i18n/en-sh.js +2 -0
  1020. data/vendor/assets/bower_components/angular-i18n/en-sl.js +2 -0
  1021. data/vendor/assets/bower_components/angular-i18n/en-ss.js +2 -0
  1022. data/vendor/assets/bower_components/angular-i18n/en-sx.js +2 -0
  1023. data/vendor/assets/bower_components/angular-i18n/en-sz.js +2 -0
  1024. data/vendor/assets/bower_components/angular-i18n/en-tc.js +2 -0
  1025. data/vendor/assets/bower_components/angular-i18n/en-tk.js +2 -0
  1026. data/vendor/assets/bower_components/angular-i18n/en-to.js +2 -0
  1027. data/vendor/assets/bower_components/angular-i18n/en-tt.js +2 -0
  1028. data/vendor/assets/bower_components/angular-i18n/en-tv.js +2 -0
  1029. data/vendor/assets/bower_components/angular-i18n/en-tz.js +2 -0
  1030. data/vendor/assets/bower_components/angular-i18n/en-ug.js +2 -0
  1031. data/vendor/assets/bower_components/angular-i18n/en-um.js +2 -0
  1032. data/vendor/assets/bower_components/angular-i18n/en-us.js +2 -0
  1033. data/vendor/assets/bower_components/angular-i18n/en-vc.js +2 -0
  1034. data/vendor/assets/bower_components/angular-i18n/en-vg.js +2 -0
  1035. data/vendor/assets/bower_components/angular-i18n/en-vi.js +2 -0
  1036. data/vendor/assets/bower_components/angular-i18n/en-vu.js +2 -0
  1037. data/vendor/assets/bower_components/angular-i18n/en-ws.js +2 -0
  1038. data/vendor/assets/bower_components/angular-i18n/en-za.js +2 -0
  1039. data/vendor/assets/bower_components/angular-i18n/en-zm.js +2 -0
  1040. data/vendor/assets/bower_components/angular-i18n/en-zw.js +2 -0
  1041. data/vendor/assets/bower_components/angular-i18n/en.js +2 -0
  1042. data/vendor/assets/bower_components/angular-i18n/eo-001.js +2 -0
  1043. data/vendor/assets/bower_components/angular-i18n/eo.js +2 -0
  1044. data/vendor/assets/bower_components/angular-i18n/es-419.js +2 -0
  1045. data/vendor/assets/bower_components/angular-i18n/es-ar.js +2 -0
  1046. data/vendor/assets/bower_components/angular-i18n/es-bo.js +2 -0
  1047. data/vendor/assets/bower_components/angular-i18n/es-cl.js +2 -0
  1048. data/vendor/assets/bower_components/angular-i18n/es-co.js +2 -0
  1049. data/vendor/assets/bower_components/angular-i18n/es-cr.js +2 -0
  1050. data/vendor/assets/bower_components/angular-i18n/es-cu.js +2 -0
  1051. data/vendor/assets/bower_components/angular-i18n/es-do.js +2 -0
  1052. data/vendor/assets/bower_components/angular-i18n/es-ea.js +2 -0
  1053. data/vendor/assets/bower_components/angular-i18n/es-ec.js +2 -0
  1054. data/vendor/assets/bower_components/angular-i18n/es-es.js +2 -0
  1055. data/vendor/assets/bower_components/angular-i18n/es-gq.js +2 -0
  1056. data/vendor/assets/bower_components/angular-i18n/es-gt.js +2 -0
  1057. data/vendor/assets/bower_components/angular-i18n/es-hn.js +2 -0
  1058. data/vendor/assets/bower_components/angular-i18n/es-ic.js +2 -0
  1059. data/vendor/assets/bower_components/angular-i18n/es-mx.js +2 -0
  1060. data/vendor/assets/bower_components/angular-i18n/es-ni.js +2 -0
  1061. data/vendor/assets/bower_components/angular-i18n/es-pa.js +2 -0
  1062. data/vendor/assets/bower_components/angular-i18n/es-pe.js +2 -0
  1063. data/vendor/assets/bower_components/angular-i18n/es-ph.js +2 -0
  1064. data/vendor/assets/bower_components/angular-i18n/es-pr.js +2 -0
  1065. data/vendor/assets/bower_components/angular-i18n/es-py.js +2 -0
  1066. data/vendor/assets/bower_components/angular-i18n/es-sv.js +2 -0
  1067. data/vendor/assets/bower_components/angular-i18n/es-us.js +2 -0
  1068. data/vendor/assets/bower_components/angular-i18n/es-uy.js +2 -0
  1069. data/vendor/assets/bower_components/angular-i18n/es-ve.js +2 -0
  1070. data/vendor/assets/bower_components/angular-i18n/es.js +2 -0
  1071. data/vendor/assets/bower_components/angular-i18n/et-ee.js +2 -0
  1072. data/vendor/assets/bower_components/angular-i18n/et.js +2 -0
  1073. data/vendor/assets/bower_components/angular-i18n/eu-es.js +2 -0
  1074. data/vendor/assets/bower_components/angular-i18n/eu.js +2 -0
  1075. data/vendor/assets/bower_components/angular-i18n/ewo-cm.js +2 -0
  1076. data/vendor/assets/bower_components/angular-i18n/ewo.js +2 -0
  1077. data/vendor/assets/bower_components/angular-i18n/fa-af.js +2 -0
  1078. data/vendor/assets/bower_components/angular-i18n/fa-ir.js +2 -0
  1079. data/vendor/assets/bower_components/angular-i18n/fa.js +2 -0
  1080. data/vendor/assets/bower_components/angular-i18n/ff-cm.js +2 -0
  1081. data/vendor/assets/bower_components/angular-i18n/ff-gn.js +2 -0
  1082. data/vendor/assets/bower_components/angular-i18n/ff-mr.js +2 -0
  1083. data/vendor/assets/bower_components/angular-i18n/ff-sn.js +2 -0
  1084. data/vendor/assets/bower_components/angular-i18n/ff.js +2 -0
  1085. data/vendor/assets/bower_components/angular-i18n/fi-fi.js +2 -0
  1086. data/vendor/assets/bower_components/angular-i18n/fi.js +2 -0
  1087. data/vendor/assets/bower_components/angular-i18n/fil-ph.js +2 -0
  1088. data/vendor/assets/bower_components/angular-i18n/fil.js +2 -0
  1089. data/vendor/assets/bower_components/angular-i18n/fo-fo.js +2 -0
  1090. data/vendor/assets/bower_components/angular-i18n/fo.js +2 -0
  1091. data/vendor/assets/bower_components/angular-i18n/fr-be.js +2 -0
  1092. data/vendor/assets/bower_components/angular-i18n/fr-bf.js +2 -0
  1093. data/vendor/assets/bower_components/angular-i18n/fr-bi.js +2 -0
  1094. data/vendor/assets/bower_components/angular-i18n/fr-bj.js +2 -0
  1095. data/vendor/assets/bower_components/angular-i18n/fr-bl.js +2 -0
  1096. data/vendor/assets/bower_components/angular-i18n/fr-ca.js +2 -0
  1097. data/vendor/assets/bower_components/angular-i18n/fr-cd.js +2 -0
  1098. data/vendor/assets/bower_components/angular-i18n/fr-cf.js +2 -0
  1099. data/vendor/assets/bower_components/angular-i18n/fr-cg.js +2 -0
  1100. data/vendor/assets/bower_components/angular-i18n/fr-ch.js +2 -0
  1101. data/vendor/assets/bower_components/angular-i18n/fr-ci.js +2 -0
  1102. data/vendor/assets/bower_components/angular-i18n/fr-cm.js +2 -0
  1103. data/vendor/assets/bower_components/angular-i18n/fr-dj.js +2 -0
  1104. data/vendor/assets/bower_components/angular-i18n/fr-dz.js +2 -0
  1105. data/vendor/assets/bower_components/angular-i18n/fr-fr.js +2 -0
  1106. data/vendor/assets/bower_components/angular-i18n/fr-ga.js +2 -0
  1107. data/vendor/assets/bower_components/angular-i18n/fr-gf.js +2 -0
  1108. data/vendor/assets/bower_components/angular-i18n/fr-gn.js +2 -0
  1109. data/vendor/assets/bower_components/angular-i18n/fr-gp.js +2 -0
  1110. data/vendor/assets/bower_components/angular-i18n/fr-gq.js +2 -0
  1111. data/vendor/assets/bower_components/angular-i18n/fr-ht.js +2 -0
  1112. data/vendor/assets/bower_components/angular-i18n/fr-km.js +2 -0
  1113. data/vendor/assets/bower_components/angular-i18n/fr-lu.js +2 -0
  1114. data/vendor/assets/bower_components/angular-i18n/fr-ma.js +2 -0
  1115. data/vendor/assets/bower_components/angular-i18n/fr-mc.js +2 -0
  1116. data/vendor/assets/bower_components/angular-i18n/fr-mf.js +2 -0
  1117. data/vendor/assets/bower_components/angular-i18n/fr-mg.js +2 -0
  1118. data/vendor/assets/bower_components/angular-i18n/fr-ml.js +2 -0
  1119. data/vendor/assets/bower_components/angular-i18n/fr-mq.js +2 -0
  1120. data/vendor/assets/bower_components/angular-i18n/fr-mr.js +2 -0
  1121. data/vendor/assets/bower_components/angular-i18n/fr-mu.js +2 -0
  1122. data/vendor/assets/bower_components/angular-i18n/fr-nc.js +2 -0
  1123. data/vendor/assets/bower_components/angular-i18n/fr-ne.js +2 -0
  1124. data/vendor/assets/bower_components/angular-i18n/fr-pf.js +2 -0
  1125. data/vendor/assets/bower_components/angular-i18n/fr-pm.js +2 -0
  1126. data/vendor/assets/bower_components/angular-i18n/fr-re.js +2 -0
  1127. data/vendor/assets/bower_components/angular-i18n/fr-rw.js +2 -0
  1128. data/vendor/assets/bower_components/angular-i18n/fr-sc.js +2 -0
  1129. data/vendor/assets/bower_components/angular-i18n/fr-sn.js +2 -0
  1130. data/vendor/assets/bower_components/angular-i18n/fr-sy.js +2 -0
  1131. data/vendor/assets/bower_components/angular-i18n/fr-td.js +2 -0
  1132. data/vendor/assets/bower_components/angular-i18n/fr-tg.js +2 -0
  1133. data/vendor/assets/bower_components/angular-i18n/fr-tn.js +2 -0
  1134. data/vendor/assets/bower_components/angular-i18n/fr-vu.js +2 -0
  1135. data/vendor/assets/bower_components/angular-i18n/fr-wf.js +2 -0
  1136. data/vendor/assets/bower_components/angular-i18n/fr-yt.js +2 -0
  1137. data/vendor/assets/bower_components/angular-i18n/fr.js +2 -0
  1138. data/vendor/assets/bower_components/angular-i18n/fur-it.js +2 -0
  1139. data/vendor/assets/bower_components/angular-i18n/fur.js +2 -0
  1140. data/vendor/assets/bower_components/angular-i18n/fy-nl.js +2 -0
  1141. data/vendor/assets/bower_components/angular-i18n/fy.js +2 -0
  1142. data/vendor/assets/bower_components/angular-i18n/ga-ie.js +2 -0
  1143. data/vendor/assets/bower_components/angular-i18n/ga.js +2 -0
  1144. data/vendor/assets/bower_components/angular-i18n/gd-gb.js +2 -0
  1145. data/vendor/assets/bower_components/angular-i18n/gd.js +2 -0
  1146. data/vendor/assets/bower_components/angular-i18n/gl-es.js +2 -0
  1147. data/vendor/assets/bower_components/angular-i18n/gl.js +2 -0
  1148. data/vendor/assets/bower_components/angular-i18n/gsw-ch.js +2 -0
  1149. data/vendor/assets/bower_components/angular-i18n/gsw-fr.js +2 -0
  1150. data/vendor/assets/bower_components/angular-i18n/gsw-li.js +2 -0
  1151. data/vendor/assets/bower_components/angular-i18n/gsw.js +2 -0
  1152. data/vendor/assets/bower_components/angular-i18n/gu-in.js +2 -0
  1153. data/vendor/assets/bower_components/angular-i18n/gu.js +2 -0
  1154. data/vendor/assets/bower_components/angular-i18n/guz-ke.js +2 -0
  1155. data/vendor/assets/bower_components/angular-i18n/guz.js +2 -0
  1156. data/vendor/assets/bower_components/angular-i18n/gv-im.js +2 -0
  1157. data/vendor/assets/bower_components/angular-i18n/gv.js +2 -0
  1158. data/vendor/assets/bower_components/angular-i18n/ha-latn-gh.js +2 -0
  1159. data/vendor/assets/bower_components/angular-i18n/ha-latn-ne.js +2 -0
  1160. data/vendor/assets/bower_components/angular-i18n/ha-latn-ng.js +2 -0
  1161. data/vendor/assets/bower_components/angular-i18n/ha-latn.js +2 -0
  1162. data/vendor/assets/bower_components/angular-i18n/ha.js +2 -0
  1163. data/vendor/assets/bower_components/angular-i18n/haw-us.js +2 -0
  1164. data/vendor/assets/bower_components/angular-i18n/haw.js +2 -0
  1165. data/vendor/assets/bower_components/angular-i18n/he-il.js +2 -0
  1166. data/vendor/assets/bower_components/angular-i18n/he.js +2 -0
  1167. data/vendor/assets/bower_components/angular-i18n/hi-in.js +2 -0
  1168. data/vendor/assets/bower_components/angular-i18n/hi.js +2 -0
  1169. data/vendor/assets/bower_components/angular-i18n/hr-ba.js +2 -0
  1170. data/vendor/assets/bower_components/angular-i18n/hr-hr.js +2 -0
  1171. data/vendor/assets/bower_components/angular-i18n/hr.js +2 -0
  1172. data/vendor/assets/bower_components/angular-i18n/hsb-de.js +2 -0
  1173. data/vendor/assets/bower_components/angular-i18n/hsb.js +2 -0
  1174. data/vendor/assets/bower_components/angular-i18n/hu-hu.js +2 -0
  1175. data/vendor/assets/bower_components/angular-i18n/hu.js +2 -0
  1176. data/vendor/assets/bower_components/angular-i18n/hy-am.js +2 -0
  1177. data/vendor/assets/bower_components/angular-i18n/hy.js +2 -0
  1178. data/vendor/assets/bower_components/angular-i18n/ia-fr.js +2 -0
  1179. data/vendor/assets/bower_components/angular-i18n/ia.js +2 -0
  1180. data/vendor/assets/bower_components/angular-i18n/id-id.js +2 -0
  1181. data/vendor/assets/bower_components/angular-i18n/id.js +2 -0
  1182. data/vendor/assets/bower_components/angular-i18n/ig-ng.js +2 -0
  1183. data/vendor/assets/bower_components/angular-i18n/ig.js +2 -0
  1184. data/vendor/assets/bower_components/angular-i18n/ii-cn.js +2 -0
  1185. data/vendor/assets/bower_components/angular-i18n/ii.js +2 -0
  1186. data/vendor/assets/bower_components/angular-i18n/in.js +2 -0
  1187. data/vendor/assets/bower_components/angular-i18n/is-is.js +2 -0
  1188. data/vendor/assets/bower_components/angular-i18n/is.js +2 -0
  1189. data/vendor/assets/bower_components/angular-i18n/it-ch.js +2 -0
  1190. data/vendor/assets/bower_components/angular-i18n/it-it.js +2 -0
  1191. data/vendor/assets/bower_components/angular-i18n/it-sm.js +2 -0
  1192. data/vendor/assets/bower_components/angular-i18n/it.js +2 -0
  1193. data/vendor/assets/bower_components/angular-i18n/iw.js +2 -0
  1194. data/vendor/assets/bower_components/angular-i18n/ja-jp.js +2 -0
  1195. data/vendor/assets/bower_components/angular-i18n/ja.js +2 -0
  1196. data/vendor/assets/bower_components/angular-i18n/jgo-cm.js +2 -0
  1197. data/vendor/assets/bower_components/angular-i18n/jgo.js +2 -0
  1198. data/vendor/assets/bower_components/angular-i18n/jmc-tz.js +2 -0
  1199. data/vendor/assets/bower_components/angular-i18n/jmc.js +2 -0
  1200. data/vendor/assets/bower_components/angular-i18n/ka-ge.js +2 -0
  1201. data/vendor/assets/bower_components/angular-i18n/ka.js +2 -0
  1202. data/vendor/assets/bower_components/angular-i18n/kab-dz.js +2 -0
  1203. data/vendor/assets/bower_components/angular-i18n/kab.js +2 -0
  1204. data/vendor/assets/bower_components/angular-i18n/kam-ke.js +2 -0
  1205. data/vendor/assets/bower_components/angular-i18n/kam.js +2 -0
  1206. data/vendor/assets/bower_components/angular-i18n/kde-tz.js +2 -0
  1207. data/vendor/assets/bower_components/angular-i18n/kde.js +2 -0
  1208. data/vendor/assets/bower_components/angular-i18n/kea-cv.js +2 -0
  1209. data/vendor/assets/bower_components/angular-i18n/kea.js +2 -0
  1210. data/vendor/assets/bower_components/angular-i18n/khq-ml.js +2 -0
  1211. data/vendor/assets/bower_components/angular-i18n/khq.js +2 -0
  1212. data/vendor/assets/bower_components/angular-i18n/ki-ke.js +2 -0
  1213. data/vendor/assets/bower_components/angular-i18n/ki.js +2 -0
  1214. data/vendor/assets/bower_components/angular-i18n/kk-cyrl-kz.js +2 -0
  1215. data/vendor/assets/bower_components/angular-i18n/kk-cyrl.js +2 -0
  1216. data/vendor/assets/bower_components/angular-i18n/kk.js +2 -0
  1217. data/vendor/assets/bower_components/angular-i18n/kkj-cm.js +2 -0
  1218. data/vendor/assets/bower_components/angular-i18n/kkj.js +2 -0
  1219. data/vendor/assets/bower_components/angular-i18n/kl-gl.js +2 -0
  1220. data/vendor/assets/bower_components/angular-i18n/kl.js +2 -0
  1221. data/vendor/assets/bower_components/angular-i18n/kln-ke.js +2 -0
  1222. data/vendor/assets/bower_components/angular-i18n/kln.js +2 -0
  1223. data/vendor/assets/bower_components/angular-i18n/km-kh.js +2 -0
  1224. data/vendor/assets/bower_components/angular-i18n/km.js +2 -0
  1225. data/vendor/assets/bower_components/angular-i18n/kn-in.js +2 -0
  1226. data/vendor/assets/bower_components/angular-i18n/kn.js +2 -0
  1227. data/vendor/assets/bower_components/angular-i18n/ko-kp.js +2 -0
  1228. data/vendor/assets/bower_components/angular-i18n/ko-kr.js +2 -0
  1229. data/vendor/assets/bower_components/angular-i18n/ko.js +2 -0
  1230. data/vendor/assets/bower_components/angular-i18n/kok-in.js +2 -0
  1231. data/vendor/assets/bower_components/angular-i18n/kok.js +2 -0
  1232. data/vendor/assets/bower_components/angular-i18n/ks-arab-in.js +2 -0
  1233. data/vendor/assets/bower_components/angular-i18n/ks-arab.js +2 -0
  1234. data/vendor/assets/bower_components/angular-i18n/ks.js +2 -0
  1235. data/vendor/assets/bower_components/angular-i18n/ksb-tz.js +2 -0
  1236. data/vendor/assets/bower_components/angular-i18n/ksb.js +2 -0
  1237. data/vendor/assets/bower_components/angular-i18n/ksf-cm.js +2 -0
  1238. data/vendor/assets/bower_components/angular-i18n/ksf.js +2 -0
  1239. data/vendor/assets/bower_components/angular-i18n/ksh-de.js +2 -0
  1240. data/vendor/assets/bower_components/angular-i18n/ksh.js +2 -0
  1241. data/vendor/assets/bower_components/angular-i18n/kw-gb.js +2 -0
  1242. data/vendor/assets/bower_components/angular-i18n/kw.js +2 -0
  1243. data/vendor/assets/bower_components/angular-i18n/ky-cyrl-kg.js +2 -0
  1244. data/vendor/assets/bower_components/angular-i18n/ky-cyrl.js +2 -0
  1245. data/vendor/assets/bower_components/angular-i18n/ky.js +2 -0
  1246. data/vendor/assets/bower_components/angular-i18n/lag-tz.js +2 -0
  1247. data/vendor/assets/bower_components/angular-i18n/lag.js +2 -0
  1248. data/vendor/assets/bower_components/angular-i18n/lb-lu.js +2 -0
  1249. data/vendor/assets/bower_components/angular-i18n/lb.js +2 -0
  1250. data/vendor/assets/bower_components/angular-i18n/lg-ug.js +2 -0
  1251. data/vendor/assets/bower_components/angular-i18n/lg.js +2 -0
  1252. data/vendor/assets/bower_components/angular-i18n/lkt-us.js +2 -0
  1253. data/vendor/assets/bower_components/angular-i18n/lkt.js +2 -0
  1254. data/vendor/assets/bower_components/angular-i18n/ln-ao.js +2 -0
  1255. data/vendor/assets/bower_components/angular-i18n/ln-cd.js +2 -0
  1256. data/vendor/assets/bower_components/angular-i18n/ln-cf.js +2 -0
  1257. data/vendor/assets/bower_components/angular-i18n/ln-cg.js +2 -0
  1258. data/vendor/assets/bower_components/angular-i18n/ln.js +2 -0
  1259. data/vendor/assets/bower_components/angular-i18n/lo-la.js +2 -0
  1260. data/vendor/assets/bower_components/angular-i18n/lo.js +2 -0
  1261. data/vendor/assets/bower_components/angular-i18n/lt-lt.js +2 -0
  1262. data/vendor/assets/bower_components/angular-i18n/lt.js +2 -0
  1263. data/vendor/assets/bower_components/angular-i18n/lu-cd.js +2 -0
  1264. data/vendor/assets/bower_components/angular-i18n/lu.js +2 -0
  1265. data/vendor/assets/bower_components/angular-i18n/luo-ke.js +2 -0
  1266. data/vendor/assets/bower_components/angular-i18n/luo.js +2 -0
  1267. data/vendor/assets/bower_components/angular-i18n/luy-ke.js +2 -0
  1268. data/vendor/assets/bower_components/angular-i18n/luy.js +2 -0
  1269. data/vendor/assets/bower_components/angular-i18n/lv-lv.js +2 -0
  1270. data/vendor/assets/bower_components/angular-i18n/lv.js +2 -0
  1271. data/vendor/assets/bower_components/angular-i18n/mas-ke.js +2 -0
  1272. data/vendor/assets/bower_components/angular-i18n/mas-tz.js +2 -0
  1273. data/vendor/assets/bower_components/angular-i18n/mas.js +2 -0
  1274. data/vendor/assets/bower_components/angular-i18n/mer-ke.js +2 -0
  1275. data/vendor/assets/bower_components/angular-i18n/mer.js +2 -0
  1276. data/vendor/assets/bower_components/angular-i18n/mfe-mu.js +2 -0
  1277. data/vendor/assets/bower_components/angular-i18n/mfe.js +2 -0
  1278. data/vendor/assets/bower_components/angular-i18n/mg-mg.js +2 -0
  1279. data/vendor/assets/bower_components/angular-i18n/mg.js +2 -0
  1280. data/vendor/assets/bower_components/angular-i18n/mgh-mz.js +2 -0
  1281. data/vendor/assets/bower_components/angular-i18n/mgh.js +2 -0
  1282. data/vendor/assets/bower_components/angular-i18n/mgo-cm.js +2 -0
  1283. data/vendor/assets/bower_components/angular-i18n/mgo.js +2 -0
  1284. data/vendor/assets/bower_components/angular-i18n/mk-mk.js +2 -0
  1285. data/vendor/assets/bower_components/angular-i18n/mk.js +2 -0
  1286. data/vendor/assets/bower_components/angular-i18n/ml-in.js +2 -0
  1287. data/vendor/assets/bower_components/angular-i18n/ml.js +2 -0
  1288. data/vendor/assets/bower_components/angular-i18n/mn-cyrl-mn.js +2 -0
  1289. data/vendor/assets/bower_components/angular-i18n/mn-cyrl.js +2 -0
  1290. data/vendor/assets/bower_components/angular-i18n/mn.js +2 -0
  1291. data/vendor/assets/bower_components/angular-i18n/mr-in.js +2 -0
  1292. data/vendor/assets/bower_components/angular-i18n/mr.js +2 -0
  1293. data/vendor/assets/bower_components/angular-i18n/ms-bn.js +2 -0
  1294. data/vendor/assets/bower_components/angular-i18n/ms-latn-bn.js +2 -0
  1295. data/vendor/assets/bower_components/angular-i18n/ms-latn-my.js +2 -0
  1296. data/vendor/assets/bower_components/angular-i18n/ms-latn-sg.js +2 -0
  1297. data/vendor/assets/bower_components/angular-i18n/ms-latn.js +2 -0
  1298. data/vendor/assets/bower_components/angular-i18n/ms-my.js +2 -0
  1299. data/vendor/assets/bower_components/angular-i18n/ms.js +2 -0
  1300. data/vendor/assets/bower_components/angular-i18n/mt-mt.js +2 -0
  1301. data/vendor/assets/bower_components/angular-i18n/mt.js +2 -0
  1302. data/vendor/assets/bower_components/angular-i18n/mua-cm.js +2 -0
  1303. data/vendor/assets/bower_components/angular-i18n/mua.js +2 -0
  1304. data/vendor/assets/bower_components/angular-i18n/my-mm.js +2 -0
  1305. data/vendor/assets/bower_components/angular-i18n/my.js +2 -0
  1306. data/vendor/assets/bower_components/angular-i18n/naq-na.js +2 -0
  1307. data/vendor/assets/bower_components/angular-i18n/naq.js +2 -0
  1308. data/vendor/assets/bower_components/angular-i18n/nb-no.js +2 -0
  1309. data/vendor/assets/bower_components/angular-i18n/nb-sj.js +2 -0
  1310. data/vendor/assets/bower_components/angular-i18n/nb.js +2 -0
  1311. data/vendor/assets/bower_components/angular-i18n/nd-zw.js +2 -0
  1312. data/vendor/assets/bower_components/angular-i18n/nd.js +2 -0
  1313. data/vendor/assets/bower_components/angular-i18n/ne-in.js +2 -0
  1314. data/vendor/assets/bower_components/angular-i18n/ne-np.js +2 -0
  1315. data/vendor/assets/bower_components/angular-i18n/ne.js +2 -0
  1316. data/vendor/assets/bower_components/angular-i18n/nl-aw.js +2 -0
  1317. data/vendor/assets/bower_components/angular-i18n/nl-be.js +2 -0
  1318. data/vendor/assets/bower_components/angular-i18n/nl-bq.js +2 -0
  1319. data/vendor/assets/bower_components/angular-i18n/nl-cw.js +2 -0
  1320. data/vendor/assets/bower_components/angular-i18n/nl-nl.js +2 -0
  1321. data/vendor/assets/bower_components/angular-i18n/nl-sr.js +2 -0
  1322. data/vendor/assets/bower_components/angular-i18n/nl-sx.js +2 -0
  1323. data/vendor/assets/bower_components/angular-i18n/nl.js +2 -0
  1324. data/vendor/assets/bower_components/angular-i18n/nmg-cm.js +2 -0
  1325. data/vendor/assets/bower_components/angular-i18n/nmg.js +2 -0
  1326. data/vendor/assets/bower_components/angular-i18n/nn-no.js +2 -0
  1327. data/vendor/assets/bower_components/angular-i18n/nn.js +2 -0
  1328. data/vendor/assets/bower_components/angular-i18n/nnh-cm.js +2 -0
  1329. data/vendor/assets/bower_components/angular-i18n/nnh.js +2 -0
  1330. data/vendor/assets/bower_components/angular-i18n/no-no.js +2 -0
  1331. data/vendor/assets/bower_components/angular-i18n/no.js +2 -0
  1332. data/vendor/assets/bower_components/angular-i18n/nr-za.js +2 -0
  1333. data/vendor/assets/bower_components/angular-i18n/nr.js +2 -0
  1334. data/vendor/assets/bower_components/angular-i18n/nso-za.js +2 -0
  1335. data/vendor/assets/bower_components/angular-i18n/nso.js +2 -0
  1336. data/vendor/assets/bower_components/angular-i18n/nus-sd.js +2 -0
  1337. data/vendor/assets/bower_components/angular-i18n/nus.js +2 -0
  1338. data/vendor/assets/bower_components/angular-i18n/nyn-ug.js +2 -0
  1339. data/vendor/assets/bower_components/angular-i18n/nyn.js +2 -0
  1340. data/vendor/assets/bower_components/angular-i18n/om-et.js +2 -0
  1341. data/vendor/assets/bower_components/angular-i18n/om-ke.js +2 -0
  1342. data/vendor/assets/bower_components/angular-i18n/om.js +2 -0
  1343. data/vendor/assets/bower_components/angular-i18n/or-in.js +2 -0
  1344. data/vendor/assets/bower_components/angular-i18n/or.js +2 -0
  1345. data/vendor/assets/bower_components/angular-i18n/os-ge.js +2 -0
  1346. data/vendor/assets/bower_components/angular-i18n/os-ru.js +2 -0
  1347. data/vendor/assets/bower_components/angular-i18n/os.js +2 -0
  1348. data/vendor/assets/bower_components/angular-i18n/pa-arab-pk.js +2 -0
  1349. data/vendor/assets/bower_components/angular-i18n/pa-arab.js +2 -0
  1350. data/vendor/assets/bower_components/angular-i18n/pa-guru-in.js +2 -0
  1351. data/vendor/assets/bower_components/angular-i18n/pa-guru.js +2 -0
  1352. data/vendor/assets/bower_components/angular-i18n/pa.js +2 -0
  1353. data/vendor/assets/bower_components/angular-i18n/package.json +26 -0
  1354. data/vendor/assets/bower_components/angular-i18n/pl-pl.js +2 -0
  1355. data/vendor/assets/bower_components/angular-i18n/pl.js +2 -0
  1356. data/vendor/assets/bower_components/angular-i18n/ps-af.js +2 -0
  1357. data/vendor/assets/bower_components/angular-i18n/ps.js +2 -0
  1358. data/vendor/assets/bower_components/angular-i18n/pt-ao.js +2 -0
  1359. data/vendor/assets/bower_components/angular-i18n/pt-br.js +2 -0
  1360. data/vendor/assets/bower_components/angular-i18n/pt-cv.js +2 -0
  1361. data/vendor/assets/bower_components/angular-i18n/pt-gw.js +2 -0
  1362. data/vendor/assets/bower_components/angular-i18n/pt-mo.js +2 -0
  1363. data/vendor/assets/bower_components/angular-i18n/pt-mz.js +2 -0
  1364. data/vendor/assets/bower_components/angular-i18n/pt-pt.js +2 -0
  1365. data/vendor/assets/bower_components/angular-i18n/pt-st.js +2 -0
  1366. data/vendor/assets/bower_components/angular-i18n/pt-tl.js +2 -0
  1367. data/vendor/assets/bower_components/angular-i18n/pt.js +2 -0
  1368. data/vendor/assets/bower_components/angular-i18n/qu-bo.js +2 -0
  1369. data/vendor/assets/bower_components/angular-i18n/qu-ec.js +2 -0
  1370. data/vendor/assets/bower_components/angular-i18n/qu-pe.js +2 -0
  1371. data/vendor/assets/bower_components/angular-i18n/qu.js +2 -0
  1372. data/vendor/assets/bower_components/angular-i18n/rm-ch.js +2 -0
  1373. data/vendor/assets/bower_components/angular-i18n/rm.js +2 -0
  1374. data/vendor/assets/bower_components/angular-i18n/rn-bi.js +2 -0
  1375. data/vendor/assets/bower_components/angular-i18n/rn.js +2 -0
  1376. data/vendor/assets/bower_components/angular-i18n/ro-md.js +2 -0
  1377. data/vendor/assets/bower_components/angular-i18n/ro-ro.js +2 -0
  1378. data/vendor/assets/bower_components/angular-i18n/ro.js +2 -0
  1379. data/vendor/assets/bower_components/angular-i18n/rof-tz.js +2 -0
  1380. data/vendor/assets/bower_components/angular-i18n/rof.js +2 -0
  1381. data/vendor/assets/bower_components/angular-i18n/ru-by.js +2 -0
  1382. data/vendor/assets/bower_components/angular-i18n/ru-kg.js +2 -0
  1383. data/vendor/assets/bower_components/angular-i18n/ru-kz.js +2 -0
  1384. data/vendor/assets/bower_components/angular-i18n/ru-md.js +2 -0
  1385. data/vendor/assets/bower_components/angular-i18n/ru-ru.js +2 -0
  1386. data/vendor/assets/bower_components/angular-i18n/ru-ua.js +2 -0
  1387. data/vendor/assets/bower_components/angular-i18n/ru.js +2 -0
  1388. data/vendor/assets/bower_components/angular-i18n/rw-rw.js +2 -0
  1389. data/vendor/assets/bower_components/angular-i18n/rw.js +2 -0
  1390. data/vendor/assets/bower_components/angular-i18n/rwk-tz.js +2 -0
  1391. data/vendor/assets/bower_components/angular-i18n/rwk.js +2 -0
  1392. data/vendor/assets/bower_components/angular-i18n/sah-ru.js +2 -0
  1393. data/vendor/assets/bower_components/angular-i18n/sah.js +2 -0
  1394. data/vendor/assets/bower_components/angular-i18n/saq-ke.js +2 -0
  1395. data/vendor/assets/bower_components/angular-i18n/saq.js +2 -0
  1396. data/vendor/assets/bower_components/angular-i18n/sbp-tz.js +2 -0
  1397. data/vendor/assets/bower_components/angular-i18n/sbp.js +2 -0
  1398. data/vendor/assets/bower_components/angular-i18n/se-fi.js +2 -0
  1399. data/vendor/assets/bower_components/angular-i18n/se-no.js +2 -0
  1400. data/vendor/assets/bower_components/angular-i18n/se-se.js +2 -0
  1401. data/vendor/assets/bower_components/angular-i18n/se.js +2 -0
  1402. data/vendor/assets/bower_components/angular-i18n/seh-mz.js +2 -0
  1403. data/vendor/assets/bower_components/angular-i18n/seh.js +2 -0
  1404. data/vendor/assets/bower_components/angular-i18n/ses-ml.js +2 -0
  1405. data/vendor/assets/bower_components/angular-i18n/ses.js +2 -0
  1406. data/vendor/assets/bower_components/angular-i18n/sg-cf.js +2 -0
  1407. data/vendor/assets/bower_components/angular-i18n/sg.js +2 -0
  1408. data/vendor/assets/bower_components/angular-i18n/shi-latn-ma.js +2 -0
  1409. data/vendor/assets/bower_components/angular-i18n/shi-latn.js +2 -0
  1410. data/vendor/assets/bower_components/angular-i18n/shi-tfng-ma.js +2 -0
  1411. data/vendor/assets/bower_components/angular-i18n/shi-tfng.js +2 -0
  1412. data/vendor/assets/bower_components/angular-i18n/shi.js +2 -0
  1413. data/vendor/assets/bower_components/angular-i18n/si-lk.js +2 -0
  1414. data/vendor/assets/bower_components/angular-i18n/si.js +2 -0
  1415. data/vendor/assets/bower_components/angular-i18n/sk-sk.js +2 -0
  1416. data/vendor/assets/bower_components/angular-i18n/sk.js +2 -0
  1417. data/vendor/assets/bower_components/angular-i18n/sl-si.js +2 -0
  1418. data/vendor/assets/bower_components/angular-i18n/sl.js +2 -0
  1419. data/vendor/assets/bower_components/angular-i18n/smn-fi.js +2 -0
  1420. data/vendor/assets/bower_components/angular-i18n/smn.js +2 -0
  1421. data/vendor/assets/bower_components/angular-i18n/sn-zw.js +2 -0
  1422. data/vendor/assets/bower_components/angular-i18n/sn.js +2 -0
  1423. data/vendor/assets/bower_components/angular-i18n/so-dj.js +2 -0
  1424. data/vendor/assets/bower_components/angular-i18n/so-et.js +2 -0
  1425. data/vendor/assets/bower_components/angular-i18n/so-ke.js +2 -0
  1426. data/vendor/assets/bower_components/angular-i18n/so-so.js +2 -0
  1427. data/vendor/assets/bower_components/angular-i18n/so.js +2 -0
  1428. data/vendor/assets/bower_components/angular-i18n/sq-al.js +2 -0
  1429. data/vendor/assets/bower_components/angular-i18n/sq-mk.js +2 -0
  1430. data/vendor/assets/bower_components/angular-i18n/sq-xk.js +2 -0
  1431. data/vendor/assets/bower_components/angular-i18n/sq.js +2 -0
  1432. data/vendor/assets/bower_components/angular-i18n/sr-cyrl-ba.js +2 -0
  1433. data/vendor/assets/bower_components/angular-i18n/sr-cyrl-me.js +2 -0
  1434. data/vendor/assets/bower_components/angular-i18n/sr-cyrl-rs.js +2 -0
  1435. data/vendor/assets/bower_components/angular-i18n/sr-cyrl-xk.js +2 -0
  1436. data/vendor/assets/bower_components/angular-i18n/sr-cyrl.js +2 -0
  1437. data/vendor/assets/bower_components/angular-i18n/sr-latn-ba.js +2 -0
  1438. data/vendor/assets/bower_components/angular-i18n/sr-latn-me.js +2 -0
  1439. data/vendor/assets/bower_components/angular-i18n/sr-latn-rs.js +2 -0
  1440. data/vendor/assets/bower_components/angular-i18n/sr-latn-xk.js +2 -0
  1441. data/vendor/assets/bower_components/angular-i18n/sr-latn.js +2 -0
  1442. data/vendor/assets/bower_components/angular-i18n/sr.js +2 -0
  1443. data/vendor/assets/bower_components/angular-i18n/ss-sz.js +2 -0
  1444. data/vendor/assets/bower_components/angular-i18n/ss-za.js +2 -0
  1445. data/vendor/assets/bower_components/angular-i18n/ss.js +2 -0
  1446. data/vendor/assets/bower_components/angular-i18n/ssy-er.js +2 -0
  1447. data/vendor/assets/bower_components/angular-i18n/ssy.js +2 -0
  1448. data/vendor/assets/bower_components/angular-i18n/st-ls.js +2 -0
  1449. data/vendor/assets/bower_components/angular-i18n/st-za.js +2 -0
  1450. data/vendor/assets/bower_components/angular-i18n/st.js +2 -0
  1451. data/vendor/assets/bower_components/angular-i18n/sv-ax.js +2 -0
  1452. data/vendor/assets/bower_components/angular-i18n/sv-fi.js +2 -0
  1453. data/vendor/assets/bower_components/angular-i18n/sv-se.js +2 -0
  1454. data/vendor/assets/bower_components/angular-i18n/sv.js +2 -0
  1455. data/vendor/assets/bower_components/angular-i18n/sw-cd.js +2 -0
  1456. data/vendor/assets/bower_components/angular-i18n/sw-ke.js +2 -0
  1457. data/vendor/assets/bower_components/angular-i18n/sw-tz.js +2 -0
  1458. data/vendor/assets/bower_components/angular-i18n/sw-ug.js +2 -0
  1459. data/vendor/assets/bower_components/angular-i18n/sw.js +2 -0
  1460. data/vendor/assets/bower_components/angular-i18n/swc-cd.js +2 -0
  1461. data/vendor/assets/bower_components/angular-i18n/swc.js +2 -0
  1462. data/vendor/assets/bower_components/angular-i18n/ta-in.js +2 -0
  1463. data/vendor/assets/bower_components/angular-i18n/ta-lk.js +2 -0
  1464. data/vendor/assets/bower_components/angular-i18n/ta-my.js +2 -0
  1465. data/vendor/assets/bower_components/angular-i18n/ta-sg.js +2 -0
  1466. data/vendor/assets/bower_components/angular-i18n/ta.js +2 -0
  1467. data/vendor/assets/bower_components/angular-i18n/te-in.js +2 -0
  1468. data/vendor/assets/bower_components/angular-i18n/te.js +2 -0
  1469. data/vendor/assets/bower_components/angular-i18n/teo-ke.js +2 -0
  1470. data/vendor/assets/bower_components/angular-i18n/teo-ug.js +2 -0
  1471. data/vendor/assets/bower_components/angular-i18n/teo.js +2 -0
  1472. data/vendor/assets/bower_components/angular-i18n/tg-cyrl-tj.js +2 -0
  1473. data/vendor/assets/bower_components/angular-i18n/tg-cyrl.js +2 -0
  1474. data/vendor/assets/bower_components/angular-i18n/tg.js +2 -0
  1475. data/vendor/assets/bower_components/angular-i18n/th-th.js +2 -0
  1476. data/vendor/assets/bower_components/angular-i18n/th.js +2 -0
  1477. data/vendor/assets/bower_components/angular-i18n/ti-er.js +2 -0
  1478. data/vendor/assets/bower_components/angular-i18n/ti-et.js +2 -0
  1479. data/vendor/assets/bower_components/angular-i18n/ti.js +2 -0
  1480. data/vendor/assets/bower_components/angular-i18n/tig-er.js +2 -0
  1481. data/vendor/assets/bower_components/angular-i18n/tig.js +2 -0
  1482. data/vendor/assets/bower_components/angular-i18n/tl.js +2 -0
  1483. data/vendor/assets/bower_components/angular-i18n/tn-bw.js +2 -0
  1484. data/vendor/assets/bower_components/angular-i18n/tn-za.js +2 -0
  1485. data/vendor/assets/bower_components/angular-i18n/tn.js +2 -0
  1486. data/vendor/assets/bower_components/angular-i18n/to-to.js +2 -0
  1487. data/vendor/assets/bower_components/angular-i18n/to.js +2 -0
  1488. data/vendor/assets/bower_components/angular-i18n/tr-cy.js +2 -0
  1489. data/vendor/assets/bower_components/angular-i18n/tr-tr.js +2 -0
  1490. data/vendor/assets/bower_components/angular-i18n/tr.js +2 -0
  1491. data/vendor/assets/bower_components/angular-i18n/ts-za.js +2 -0
  1492. data/vendor/assets/bower_components/angular-i18n/ts.js +2 -0
  1493. data/vendor/assets/bower_components/angular-i18n/twq-ne.js +2 -0
  1494. data/vendor/assets/bower_components/angular-i18n/twq.js +2 -0
  1495. data/vendor/assets/bower_components/angular-i18n/tzm-latn-ma.js +2 -0
  1496. data/vendor/assets/bower_components/angular-i18n/tzm-latn.js +2 -0
  1497. data/vendor/assets/bower_components/angular-i18n/tzm.js +2 -0
  1498. data/vendor/assets/bower_components/angular-i18n/ug-arab-cn.js +2 -0
  1499. data/vendor/assets/bower_components/angular-i18n/ug-arab.js +2 -0
  1500. data/vendor/assets/bower_components/angular-i18n/ug.js +2 -0
  1501. data/vendor/assets/bower_components/angular-i18n/uk-ua.js +2 -0
  1502. data/vendor/assets/bower_components/angular-i18n/uk.js +2 -0
  1503. data/vendor/assets/bower_components/angular-i18n/ur-in.js +2 -0
  1504. data/vendor/assets/bower_components/angular-i18n/ur-pk.js +2 -0
  1505. data/vendor/assets/bower_components/angular-i18n/ur.js +2 -0
  1506. data/vendor/assets/bower_components/angular-i18n/uz-arab-af.js +2 -0
  1507. data/vendor/assets/bower_components/angular-i18n/uz-arab.js +2 -0
  1508. data/vendor/assets/bower_components/angular-i18n/uz-cyrl-uz.js +2 -0
  1509. data/vendor/assets/bower_components/angular-i18n/uz-cyrl.js +2 -0
  1510. data/vendor/assets/bower_components/angular-i18n/uz-latn-uz.js +2 -0
  1511. data/vendor/assets/bower_components/angular-i18n/uz-latn.js +2 -0
  1512. data/vendor/assets/bower_components/angular-i18n/uz.js +2 -0
  1513. data/vendor/assets/bower_components/angular-i18n/vai-latn-lr.js +2 -0
  1514. data/vendor/assets/bower_components/angular-i18n/vai-latn.js +2 -0
  1515. data/vendor/assets/bower_components/angular-i18n/vai-vaii-lr.js +2 -0
  1516. data/vendor/assets/bower_components/angular-i18n/vai-vaii.js +2 -0
  1517. data/vendor/assets/bower_components/angular-i18n/vai.js +2 -0
  1518. data/vendor/assets/bower_components/angular-i18n/ve-za.js +2 -0
  1519. data/vendor/assets/bower_components/angular-i18n/ve.js +2 -0
  1520. data/vendor/assets/bower_components/angular-i18n/vi-vn.js +2 -0
  1521. data/vendor/assets/bower_components/angular-i18n/vi.js +2 -0
  1522. data/vendor/assets/bower_components/angular-i18n/vo-001.js +2 -0
  1523. data/vendor/assets/bower_components/angular-i18n/vo.js +2 -0
  1524. data/vendor/assets/bower_components/angular-i18n/vun-tz.js +2 -0
  1525. data/vendor/assets/bower_components/angular-i18n/vun.js +2 -0
  1526. data/vendor/assets/bower_components/angular-i18n/wae-ch.js +2 -0
  1527. data/vendor/assets/bower_components/angular-i18n/wae.js +2 -0
  1528. data/vendor/assets/bower_components/angular-i18n/wal-et.js +2 -0
  1529. data/vendor/assets/bower_components/angular-i18n/wal.js +2 -0
  1530. data/vendor/assets/bower_components/angular-i18n/xh-za.js +2 -0
  1531. data/vendor/assets/bower_components/angular-i18n/xh.js +2 -0
  1532. data/vendor/assets/bower_components/angular-i18n/xog-ug.js +2 -0
  1533. data/vendor/assets/bower_components/angular-i18n/xog.js +2 -0
  1534. data/vendor/assets/bower_components/angular-i18n/yav-cm.js +2 -0
  1535. data/vendor/assets/bower_components/angular-i18n/yav.js +2 -0
  1536. data/vendor/assets/bower_components/angular-i18n/yi-001.js +2 -0
  1537. data/vendor/assets/bower_components/angular-i18n/yi.js +2 -0
  1538. data/vendor/assets/bower_components/angular-i18n/yo-bj.js +2 -0
  1539. data/vendor/assets/bower_components/angular-i18n/yo-ng.js +2 -0
  1540. data/vendor/assets/bower_components/angular-i18n/yo.js +2 -0
  1541. data/vendor/assets/bower_components/angular-i18n/zgh-ma.js +2 -0
  1542. data/vendor/assets/bower_components/angular-i18n/zgh.js +2 -0
  1543. data/vendor/assets/bower_components/angular-i18n/zh-cn.js +2 -0
  1544. data/vendor/assets/bower_components/angular-i18n/zh-hans-cn.js +2 -0
  1545. data/vendor/assets/bower_components/angular-i18n/zh-hans-hk.js +2 -0
  1546. data/vendor/assets/bower_components/angular-i18n/zh-hans-mo.js +2 -0
  1547. data/vendor/assets/bower_components/angular-i18n/zh-hans-sg.js +2 -0
  1548. data/vendor/assets/bower_components/angular-i18n/zh-hans.js +2 -0
  1549. data/vendor/assets/bower_components/angular-i18n/zh-hant-hk.js +2 -0
  1550. data/vendor/assets/bower_components/angular-i18n/zh-hant-mo.js +2 -0
  1551. data/vendor/assets/bower_components/angular-i18n/zh-hant-tw.js +2 -0
  1552. data/vendor/assets/bower_components/angular-i18n/zh-hant.js +2 -0
  1553. data/vendor/assets/bower_components/angular-i18n/zh-hk.js +2 -0
  1554. data/vendor/assets/bower_components/angular-i18n/zh-tw.js +2 -0
  1555. data/vendor/assets/bower_components/angular-i18n/zh.js +2 -0
  1556. data/vendor/assets/bower_components/angular-i18n/zu-za.js +2 -0
  1557. data/vendor/assets/bower_components/angular-i18n/zu.js +2 -0
  1558. data/vendor/assets/bower_components/angular-loading-bar/CHANGELOG.md +48 -0
  1559. data/vendor/assets/bower_components/angular-loading-bar/Gruntfile.js +94 -0
  1560. data/vendor/assets/bower_components/angular-loading-bar/LICENSE +20 -0
  1561. data/vendor/assets/bower_components/angular-loading-bar/README.md +163 -0
  1562. data/vendor/assets/bower_components/angular-loading-bar/bower.json +26 -0
  1563. data/vendor/assets/bower_components/angular-loading-bar/build/loading-bar.css +110 -0
  1564. data/vendor/assets/bower_components/angular-loading-bar/build/loading-bar.js +314 -0
  1565. data/vendor/assets/bower_components/angular-loading-bar/build/loading-bar.min.css +8 -0
  1566. data/vendor/assets/bower_components/angular-loading-bar/build/loading-bar.min.js +7 -0
  1567. data/vendor/assets/bower_components/angular-loading-bar/package.json +45 -0
  1568. data/vendor/assets/bower_components/angular-loading-bar/src/loading-bar.css +104 -0
  1569. data/vendor/assets/bower_components/angular-loading-bar/src/loading-bar.js +308 -0
  1570. data/vendor/assets/bower_components/angular-sanitize/README.md +77 -0
  1571. data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.js +678 -0
  1572. data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.min.js +16 -0
  1573. data/vendor/assets/bower_components/angular-sanitize/angular-sanitize.min.js.map +8 -0
  1574. data/vendor/assets/bower_components/angular-sanitize/bower.json +9 -0
  1575. data/vendor/assets/bower_components/angular-sanitize/package.json +26 -0
  1576. data/vendor/assets/bower_components/angular-toggle-switch/LICENSE +21 -0
  1577. data/vendor/assets/bower_components/angular-toggle-switch/README.md +36 -0
  1578. data/vendor/assets/bower_components/angular-toggle-switch/angular-toggle-switch-bootstrap.css +35 -0
  1579. data/vendor/assets/bower_components/angular-toggle-switch/angular-toggle-switch.css +73 -0
  1580. data/vendor/assets/bower_components/angular-toggle-switch/angular-toggle-switch.js +49 -0
  1581. data/vendor/assets/bower_components/angular-toggle-switch/angular-toggle-switch.min.js +1 -0
  1582. data/vendor/assets/bower_components/angular-toggle-switch/bower.json +24 -0
  1583. data/vendor/assets/bower_components/angular-toggle-switch/test/angular-toggle-switch.spec.js +132 -0
  1584. data/vendor/assets/bower_components/angular-ui-codemirror/CHANGELOG.md +8 -0
  1585. data/vendor/assets/bower_components/angular-ui-codemirror/bower.json +9 -0
  1586. data/vendor/assets/bower_components/angular-ui-codemirror/ui-codemirror.js +103 -0
  1587. data/vendor/assets/bower_components/angular-ui-codemirror/ui-codemirror.min.js +7 -0
  1588. data/vendor/assets/bower_components/angular-ui-router/CHANGELOG.md +197 -0
  1589. data/vendor/assets/bower_components/angular-ui-router/CONTRIBUTING.md +65 -0
  1590. data/vendor/assets/bower_components/angular-ui-router/LICENSE +21 -0
  1591. data/vendor/assets/bower_components/angular-ui-router/README.md +243 -0
  1592. data/vendor/assets/bower_components/angular-ui-router/api/angular-ui-router.d.ts +126 -0
  1593. data/vendor/assets/bower_components/angular-ui-router/bower.json +23 -0
  1594. data/vendor/assets/bower_components/angular-ui-router/release/angular-ui-router.js +4232 -0
  1595. data/vendor/assets/bower_components/angular-ui-router/release/angular-ui-router.min.js +7 -0
  1596. data/vendor/assets/bower_components/angular-ui-router/src/common.js +292 -0
  1597. data/vendor/assets/bower_components/angular-ui-router/src/resolve.js +252 -0
  1598. data/vendor/assets/bower_components/angular-ui-router/src/state.js +1373 -0
  1599. data/vendor/assets/bower_components/angular-ui-router/src/stateDirectives.js +268 -0
  1600. data/vendor/assets/bower_components/angular-ui-router/src/stateFilters.js +39 -0
  1601. data/vendor/assets/bower_components/angular-ui-router/src/templateFactory.js +110 -0
  1602. data/vendor/assets/bower_components/angular-ui-router/src/urlMatcherFactory.js +1036 -0
  1603. data/vendor/assets/bower_components/angular-ui-router/src/urlRouter.js +413 -0
  1604. data/vendor/assets/bower_components/angular-ui-router/src/view.js +71 -0
  1605. data/vendor/assets/bower_components/angular-ui-router/src/viewDirective.js +302 -0
  1606. data/vendor/assets/bower_components/angular-ui-router/src/viewScroll.js +52 -0
  1607. data/vendor/assets/bower_components/angular-ui-select/LICENSE +20 -0
  1608. data/vendor/assets/bower_components/angular-ui-select/README.md +43 -0
  1609. data/vendor/assets/bower_components/angular-ui-select/bower.json +29 -0
  1610. data/vendor/assets/bower_components/angular-ui-select/dist/select.css +221 -0
  1611. data/vendor/assets/bower_components/angular-ui-select/dist/select.js +1746 -0
  1612. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.css +6 -0
  1613. data/vendor/assets/bower_components/angular-ui-select/dist/select.min.js +8 -0
  1614. data/vendor/assets/bower_components/angular-ui-select/package.json +40 -0
  1615. data/vendor/assets/bower_components/angular-ui-tree/Gruntfile.js +229 -0
  1616. data/vendor/assets/bower_components/angular-ui-tree/LICENSE +20 -0
  1617. data/vendor/assets/bower_components/angular-ui-tree/README.md +452 -0
  1618. data/vendor/assets/bower_components/angular-ui-tree/bower.json +43 -0
  1619. data/vendor/assets/bower_components/angular-ui-tree/build/compiler.jar +0 -0
  1620. data/vendor/assets/bower_components/angular-ui-tree/demo/css/demo-horizontal.css +47 -0
  1621. data/vendor/assets/bower_components/angular-ui-tree/demo/css/demo.css +31 -0
  1622. data/vendor/assets/bower_components/angular-ui-tree/demo/css/tree.css +25 -0
  1623. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.js +1243 -0
  1624. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.min.css +2 -0
  1625. data/vendor/assets/bower_components/angular-ui-tree/demo/dist/angular-ui-tree.min.js +6 -0
  1626. data/vendor/assets/bower_components/angular-ui-tree/demo/filter.html +64 -0
  1627. data/vendor/assets/bower_components/angular-ui-tree/demo/groups.html +100 -0
  1628. data/vendor/assets/bower_components/angular-ui-tree/demo/index.html +101 -0
  1629. data/vendor/assets/bower_components/angular-ui-tree/demo/js/demo.js +63 -0
  1630. data/vendor/assets/bower_components/angular-ui-tree/demo/js/filter.js +91 -0
  1631. data/vendor/assets/bower_components/angular-ui-tree/demo/js/groups.js +143 -0
  1632. data/vendor/assets/bower_components/angular-ui-tree/demo/js/tree.js +102 -0
  1633. data/vendor/assets/bower_components/angular-ui-tree/demo/js/trees.js +60 -0
  1634. data/vendor/assets/bower_components/angular-ui-tree/demo/test.html +60 -0
  1635. data/vendor/assets/bower_components/angular-ui-tree/demo/tree-horizontal.html +66 -0
  1636. data/vendor/assets/bower_components/angular-ui-tree/demo/tree.html +66 -0
  1637. data/vendor/assets/bower_components/angular-ui-tree/demo/trees.html +92 -0
  1638. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.js +1243 -0
  1639. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.min.css +2 -0
  1640. data/vendor/assets/bower_components/angular-ui-tree/dist/angular-ui-tree.min.js +6 -0
  1641. data/vendor/assets/bower_components/angular-ui-tree/guide/00_usage.ngdoc +78 -0
  1642. data/vendor/assets/bower_components/angular-ui-tree/guide/01_development_setup.ngdoc +58 -0
  1643. data/vendor/assets/bower_components/angular-ui-tree/guide/index.ngdoc +33 -0
  1644. data/vendor/assets/bower_components/angular-ui-tree/karma.conf.js +49 -0
  1645. data/vendor/assets/bower_components/angular-ui-tree/package.json +40 -0
  1646. data/vendor/assets/bower_components/angular-ui-tree/source/angular-ui-tree.css +63 -0
  1647. data/vendor/assets/bower_components/angular-ui-tree/source/angular-ui-tree.scss +63 -0
  1648. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/handleCtrl.js +16 -0
  1649. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/nodeCtrl.js +141 -0
  1650. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/nodesCtrl.js +100 -0
  1651. data/vendor/assets/bower_components/angular-ui-tree/source/controllers/treeCtrl.js +63 -0
  1652. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTree.js +115 -0
  1653. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeHandle.js +27 -0
  1654. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeNode.js +427 -0
  1655. data/vendor/assets/bower_components/angular-ui-tree/source/directives/uiTreeNodes.js +59 -0
  1656. data/vendor/assets/bower_components/angular-ui-tree/source/main.js +23 -0
  1657. data/vendor/assets/bower_components/angular-ui-tree/source/services/helper.js +265 -0
  1658. data/vendor/assets/bower_components/angular-xeditable/CHANGELOG.txt +95 -0
  1659. data/vendor/assets/bower_components/angular-xeditable/bower.json +33 -0
  1660. data/vendor/assets/bower_components/angular-xeditable/dist/css/xeditable.css +7 -0
  1661. data/vendor/assets/bower_components/angular-xeditable/dist/js/xeditable.js +2227 -0
  1662. data/vendor/assets/bower_components/angular-xeditable/dist/js/xeditable.min.js +6 -0
  1663. data/vendor/assets/bower_components/angular-xeditable/npm-debug.log +28 -0
  1664. data/vendor/assets/bower_components/angular-xeditable/readme.md +46 -0
  1665. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/CHANGELOG.md +9 -0
  1666. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/Gruntfile.js +120 -0
  1667. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/README.md +48 -0
  1668. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/bower.json +32 -0
  1669. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/development_index.html +67 -0
  1670. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/dist/angularjs-dropdown-multiselect.min.js +1 -0
  1671. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/package.json +28 -0
  1672. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/body-bg.jpg +0 -0
  1673. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/download-button.png +0 -0
  1674. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/github-button.png +0 -0
  1675. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/header-bg.jpg +0 -0
  1676. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/highlight-bg.jpg +0 -0
  1677. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/images/sidebar-bg.jpg +0 -0
  1678. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/index.html +67 -0
  1679. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/javascripts/app.js +25 -0
  1680. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/javascripts/main.js +1 -0
  1681. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/javascripts/pages/home/ExampleCtrl.js +158 -0
  1682. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/javascripts/pages/home/home.html +897 -0
  1683. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/stylesheets/print.css +226 -0
  1684. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/stylesheets/pygment_trac.css +69 -0
  1685. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/pages/stylesheets/stylesheet.css +410 -0
  1686. data/vendor/assets/bower_components/angularjs-dropdown-multiselect/src/angularjs-dropdown-multiselect.js +292 -0
  1687. data/vendor/assets/bower_components/bootstrap/Gruntfile.js +480 -0
  1688. data/vendor/assets/bower_components/bootstrap/LICENSE +21 -0
  1689. data/vendor/assets/bower_components/bootstrap/README.md +127 -0
  1690. data/vendor/assets/bower_components/bootstrap/bower.json +38 -0
  1691. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css +442 -0
  1692. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  1693. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
  1694. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  1695. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.less +6203 -0
  1696. data/vendor/assets/bower_components/bootstrap/dist/css/bootstrap.min.css.erb +5 -0
  1697. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  1698. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +229 -0
  1699. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  1700. data/vendor/assets/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  1701. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.js +2114 -0
  1702. data/vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js +6 -0
  1703. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  1704. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +229 -0
  1705. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  1706. data/vendor/assets/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  1707. data/vendor/assets/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +41 -0
  1708. data/vendor/assets/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +236 -0
  1709. data/vendor/assets/bower_components/bootstrap/grunt/bs-raw-files-generator.js +46 -0
  1710. data/vendor/assets/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  1711. data/vendor/assets/bower_components/bootstrap/js/affix.js +142 -0
  1712. data/vendor/assets/bower_components/bootstrap/js/alert.js +92 -0
  1713. data/vendor/assets/bower_components/bootstrap/js/button.js +110 -0
  1714. data/vendor/assets/bower_components/bootstrap/js/carousel.js +223 -0
  1715. data/vendor/assets/bower_components/bootstrap/js/collapse.js +170 -0
  1716. data/vendor/assets/bower_components/bootstrap/js/dropdown.js +151 -0
  1717. data/vendor/assets/bower_components/bootstrap/js/modal.js +280 -0
  1718. data/vendor/assets/bower_components/bootstrap/js/popover.js +113 -0
  1719. data/vendor/assets/bower_components/bootstrap/js/scrollspy.js +170 -0
  1720. data/vendor/assets/bower_components/bootstrap/js/tab.js +128 -0
  1721. data/vendor/assets/bower_components/bootstrap/js/tooltip.js +457 -0
  1722. data/vendor/assets/bower_components/bootstrap/js/transition.js +59 -0
  1723. data/vendor/assets/bower_components/bootstrap/less/alerts.less +68 -0
  1724. data/vendor/assets/bower_components/bootstrap/less/badges.less +55 -0
  1725. data/vendor/assets/bower_components/bootstrap/less/bootstrap.less +50 -0
  1726. data/vendor/assets/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  1727. data/vendor/assets/bower_components/bootstrap/less/button-groups.less +240 -0
  1728. data/vendor/assets/bower_components/bootstrap/less/buttons.less +157 -0
  1729. data/vendor/assets/bower_components/bootstrap/less/carousel.less +243 -0
  1730. data/vendor/assets/bower_components/bootstrap/less/close.less +33 -0
  1731. data/vendor/assets/bower_components/bootstrap/less/code.less +68 -0
  1732. data/vendor/assets/bower_components/bootstrap/less/component-animations.less +31 -0
  1733. data/vendor/assets/bower_components/bootstrap/less/dropdowns.less +215 -0
  1734. data/vendor/assets/bower_components/bootstrap/less/forms.less +540 -0
  1735. data/vendor/assets/bower_components/bootstrap/less/glyphicons.less +233 -0
  1736. data/vendor/assets/bower_components/bootstrap/less/grid.less +84 -0
  1737. data/vendor/assets/bower_components/bootstrap/less/input-groups.less +166 -0
  1738. data/vendor/assets/bower_components/bootstrap/less/jumbotron.less +48 -0
  1739. data/vendor/assets/bower_components/bootstrap/less/labels.less +64 -0
  1740. data/vendor/assets/bower_components/bootstrap/less/list-group.less +131 -0
  1741. data/vendor/assets/bower_components/bootstrap/less/media.less +56 -0
  1742. data/vendor/assets/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  1743. data/vendor/assets/bower_components/bootstrap/less/mixins/background-variant.less +8 -0
  1744. data/vendor/assets/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  1745. data/vendor/assets/bower_components/bootstrap/less/mixins/buttons.less +50 -0
  1746. data/vendor/assets/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  1747. data/vendor/assets/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  1748. data/vendor/assets/bower_components/bootstrap/less/mixins/forms.less +81 -0
  1749. data/vendor/assets/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  1750. data/vendor/assets/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  1751. data/vendor/assets/bower_components/bootstrap/less/mixins/grid.less +122 -0
  1752. data/vendor/assets/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  1753. data/vendor/assets/bower_components/bootstrap/less/mixins/image.less +34 -0
  1754. data/vendor/assets/bower_components/bootstrap/less/mixins/labels.less +12 -0
  1755. data/vendor/assets/bower_components/bootstrap/less/mixins/list-group.less +29 -0
  1756. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  1757. data/vendor/assets/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  1758. data/vendor/assets/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  1759. data/vendor/assets/bower_components/bootstrap/less/mixins/pagination.less +23 -0
  1760. data/vendor/assets/bower_components/bootstrap/less/mixins/panels.less +24 -0
  1761. data/vendor/assets/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  1762. data/vendor/assets/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  1763. data/vendor/assets/bower_components/bootstrap/less/mixins/resize.less +6 -0
  1764. data/vendor/assets/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  1765. data/vendor/assets/bower_components/bootstrap/less/mixins/size.less +10 -0
  1766. data/vendor/assets/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  1767. data/vendor/assets/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  1768. data/vendor/assets/bower_components/bootstrap/less/mixins/text-emphasis.less +8 -0
  1769. data/vendor/assets/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  1770. data/vendor/assets/bower_components/bootstrap/less/mixins/vendor-prefixes.less +224 -0
  1771. data/vendor/assets/bower_components/bootstrap/less/mixins.less +39 -0
  1772. data/vendor/assets/bower_components/bootstrap/less/modals.less +150 -0
  1773. data/vendor/assets/bower_components/bootstrap/less/navbar.less +655 -0
  1774. data/vendor/assets/bower_components/bootstrap/less/navs.less +242 -0
  1775. data/vendor/assets/bower_components/bootstrap/less/normalize.less +425 -0
  1776. data/vendor/assets/bower_components/bootstrap/less/pager.less +55 -0
  1777. data/vendor/assets/bower_components/bootstrap/less/pagination.less +88 -0
  1778. data/vendor/assets/bower_components/bootstrap/less/panels.less +243 -0
  1779. data/vendor/assets/bower_components/bootstrap/less/popovers.less +133 -0
  1780. data/vendor/assets/bower_components/bootstrap/less/print.less +101 -0
  1781. data/vendor/assets/bower_components/bootstrap/less/progress-bars.less +105 -0
  1782. data/vendor/assets/bower_components/bootstrap/less/responsive-embed.less +34 -0
  1783. data/vendor/assets/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  1784. data/vendor/assets/bower_components/bootstrap/less/scaffolding.less +150 -0
  1785. data/vendor/assets/bower_components/bootstrap/less/tables.less +233 -0
  1786. data/vendor/assets/bower_components/bootstrap/less/theme.less +258 -0
  1787. data/vendor/assets/bower_components/bootstrap/less/thumbnails.less +36 -0
  1788. data/vendor/assets/bower_components/bootstrap/less/tooltip.less +95 -0
  1789. data/vendor/assets/bower_components/bootstrap/less/type.less +313 -0
  1790. data/vendor/assets/bower_components/bootstrap/less/utilities.less +57 -0
  1791. data/vendor/assets/bower_components/bootstrap/less/variables.less +846 -0
  1792. data/vendor/assets/bower_components/bootstrap/less/wells.less +29 -0
  1793. data/vendor/assets/bower_components/bootstrap/package.json +81 -0
  1794. data/vendor/assets/bower_components/codemirror/AUTHORS +406 -0
  1795. data/vendor/assets/bower_components/codemirror/CONTRIBUTING.md +76 -0
  1796. data/vendor/assets/bower_components/codemirror/LICENSE +19 -0
  1797. data/vendor/assets/bower_components/codemirror/README.md +11 -0
  1798. data/vendor/assets/bower_components/codemirror/addon/comment/comment.js +183 -0
  1799. data/vendor/assets/bower_components/codemirror/addon/comment/continuecomment.js +85 -0
  1800. data/vendor/assets/bower_components/codemirror/addon/dialog/dialog.css +32 -0
  1801. data/vendor/assets/bower_components/codemirror/addon/dialog/dialog.js +155 -0
  1802. data/vendor/assets/bower_components/codemirror/addon/display/fullscreen.css +6 -0
  1803. data/vendor/assets/bower_components/codemirror/addon/display/fullscreen.js +41 -0
  1804. data/vendor/assets/bower_components/codemirror/addon/display/placeholder.js +58 -0
  1805. data/vendor/assets/bower_components/codemirror/addon/display/rulers.js +64 -0
  1806. data/vendor/assets/bower_components/codemirror/addon/edit/closebrackets.js +159 -0
  1807. data/vendor/assets/bower_components/codemirror/addon/edit/closetag.js +159 -0
  1808. data/vendor/assets/bower_components/codemirror/addon/edit/continuelist.js +51 -0
  1809. data/vendor/assets/bower_components/codemirror/addon/edit/matchbrackets.js +120 -0
  1810. data/vendor/assets/bower_components/codemirror/addon/edit/matchtags.js +66 -0
  1811. data/vendor/assets/bower_components/codemirror/addon/edit/trailingspace.js +27 -0
  1812. data/vendor/assets/bower_components/codemirror/addon/fold/brace-fold.js +105 -0
  1813. data/vendor/assets/bower_components/codemirror/addon/fold/comment-fold.js +57 -0
  1814. data/vendor/assets/bower_components/codemirror/addon/fold/foldcode.js +145 -0
  1815. data/vendor/assets/bower_components/codemirror/addon/fold/foldgutter.css +20 -0
  1816. data/vendor/assets/bower_components/codemirror/addon/fold/foldgutter.js +134 -0
  1817. data/vendor/assets/bower_components/codemirror/addon/fold/indent-fold.js +44 -0
  1818. data/vendor/assets/bower_components/codemirror/addon/fold/markdown-fold.js +49 -0
  1819. data/vendor/assets/bower_components/codemirror/addon/fold/xml-fold.js +182 -0
  1820. data/vendor/assets/bower_components/codemirror/addon/hint/anyword-hint.js +42 -0
  1821. data/vendor/assets/bower_components/codemirror/addon/hint/css-hint.js +56 -0
  1822. data/vendor/assets/bower_components/codemirror/addon/hint/html-hint.js +348 -0
  1823. data/vendor/assets/bower_components/codemirror/addon/hint/javascript-hint.js +141 -0
  1824. data/vendor/assets/bower_components/codemirror/addon/hint/python-hint.js +102 -0
  1825. data/vendor/assets/bower_components/codemirror/addon/hint/show-hint.css +38 -0
  1826. data/vendor/assets/bower_components/codemirror/addon/hint/show-hint.js +389 -0
  1827. data/vendor/assets/bower_components/codemirror/addon/hint/sql-hint.js +194 -0
  1828. data/vendor/assets/bower_components/codemirror/addon/hint/xml-hint.js +111 -0
  1829. data/vendor/assets/bower_components/codemirror/addon/lint/coffeescript-lint.js +41 -0
  1830. data/vendor/assets/bower_components/codemirror/addon/lint/css-lint.js +35 -0
  1831. data/vendor/assets/bower_components/codemirror/addon/lint/javascript-lint.js +136 -0
  1832. data/vendor/assets/bower_components/codemirror/addon/lint/json-lint.js +31 -0
  1833. data/vendor/assets/bower_components/codemirror/addon/lint/lint.css +73 -0
  1834. data/vendor/assets/bower_components/codemirror/addon/lint/lint.js +204 -0
  1835. data/vendor/assets/bower_components/codemirror/addon/lint/yaml-lint.js +28 -0
  1836. data/vendor/assets/bower_components/codemirror/addon/merge/merge.css +98 -0
  1837. data/vendor/assets/bower_components/codemirror/addon/merge/merge.js +536 -0
  1838. data/vendor/assets/bower_components/codemirror/addon/mode/loadmode.js +64 -0
  1839. data/vendor/assets/bower_components/codemirror/addon/mode/multiplex.js +118 -0
  1840. data/vendor/assets/bower_components/codemirror/addon/mode/multiplex_test.js +33 -0
  1841. data/vendor/assets/bower_components/codemirror/addon/mode/overlay.js +85 -0
  1842. data/vendor/assets/bower_components/codemirror/addon/mode/simple.js +210 -0
  1843. data/vendor/assets/bower_components/codemirror/addon/runmode/colorize.js +40 -0
  1844. data/vendor/assets/bower_components/codemirror/addon/runmode/runmode-standalone.js +157 -0
  1845. data/vendor/assets/bower_components/codemirror/addon/runmode/runmode.js +72 -0
  1846. data/vendor/assets/bower_components/codemirror/addon/runmode/runmode.node.js +120 -0
  1847. data/vendor/assets/bower_components/codemirror/addon/scroll/scrollpastend.js +46 -0
  1848. data/vendor/assets/bower_components/codemirror/addon/search/match-highlighter.js +128 -0
  1849. data/vendor/assets/bower_components/codemirror/addon/search/search.js +159 -0
  1850. data/vendor/assets/bower_components/codemirror/addon/search/searchcursor.js +189 -0
  1851. data/vendor/assets/bower_components/codemirror/addon/selection/active-line.js +71 -0
  1852. data/vendor/assets/bower_components/codemirror/addon/selection/mark-selection.js +118 -0
  1853. data/vendor/assets/bower_components/codemirror/addon/tern/tern.css +86 -0
  1854. data/vendor/assets/bower_components/codemirror/addon/tern/tern.js +668 -0
  1855. data/vendor/assets/bower_components/codemirror/addon/tern/worker.js +44 -0
  1856. data/vendor/assets/bower_components/codemirror/addon/wrap/hardwrap.js +139 -0
  1857. data/vendor/assets/bower_components/codemirror/bower.json +16 -0
  1858. data/vendor/assets/bower_components/codemirror/keymap/emacs.js +393 -0
  1859. data/vendor/assets/bower_components/codemirror/keymap/sublime.js +540 -0
  1860. data/vendor/assets/bower_components/codemirror/keymap/vim.js +4829 -0
  1861. data/vendor/assets/bower_components/codemirror/lib/codemirror.css +318 -0
  1862. data/vendor/assets/bower_components/codemirror/lib/codemirror.js +7922 -0
  1863. data/vendor/assets/bower_components/codemirror/mode/apl/apl.js +175 -0
  1864. data/vendor/assets/bower_components/codemirror/mode/asterisk/asterisk.js +198 -0
  1865. data/vendor/assets/bower_components/codemirror/mode/clike/clike.js +489 -0
  1866. data/vendor/assets/bower_components/codemirror/mode/clike/scala.html +767 -0
  1867. data/vendor/assets/bower_components/codemirror/mode/clojure/clojure.js +243 -0
  1868. data/vendor/assets/bower_components/codemirror/mode/cobol/cobol.js +255 -0
  1869. data/vendor/assets/bower_components/codemirror/mode/coffeescript/coffeescript.js +369 -0
  1870. data/vendor/assets/bower_components/codemirror/mode/commonlisp/commonlisp.js +120 -0
  1871. data/vendor/assets/bower_components/codemirror/mode/css/css.js +717 -0
  1872. data/vendor/assets/bower_components/codemirror/mode/css/less.html +152 -0
  1873. data/vendor/assets/bower_components/codemirror/mode/css/less_test.js +51 -0
  1874. data/vendor/assets/bower_components/codemirror/mode/css/scss.html +157 -0
  1875. data/vendor/assets/bower_components/codemirror/mode/css/scss_test.js +110 -0
  1876. data/vendor/assets/bower_components/codemirror/mode/css/test.js +135 -0
  1877. data/vendor/assets/bower_components/codemirror/mode/cypher/cypher.js +146 -0
  1878. data/vendor/assets/bower_components/codemirror/mode/d/d.js +218 -0
  1879. data/vendor/assets/bower_components/codemirror/mode/diff/diff.js +47 -0
  1880. data/vendor/assets/bower_components/codemirror/mode/django/django.js +67 -0
  1881. data/vendor/assets/bower_components/codemirror/mode/dockerfile/dockerfile.js +80 -0
  1882. data/vendor/assets/bower_components/codemirror/mode/dtd/dtd.js +142 -0
  1883. data/vendor/assets/bower_components/codemirror/mode/dylan/dylan.js +299 -0
  1884. data/vendor/assets/bower_components/codemirror/mode/ecl/ecl.js +207 -0
  1885. data/vendor/assets/bower_components/codemirror/mode/eiffel/eiffel.js +162 -0
  1886. data/vendor/assets/bower_components/codemirror/mode/erlang/erlang.js +622 -0
  1887. data/vendor/assets/bower_components/codemirror/mode/fortran/fortran.js +188 -0
  1888. data/vendor/assets/bower_components/codemirror/mode/gas/gas.js +345 -0
  1889. data/vendor/assets/bower_components/codemirror/mode/gfm/gfm.js +123 -0
  1890. data/vendor/assets/bower_components/codemirror/mode/gfm/test.js +213 -0
  1891. data/vendor/assets/bower_components/codemirror/mode/gherkin/gherkin.js +178 -0
  1892. data/vendor/assets/bower_components/codemirror/mode/go/go.js +184 -0
  1893. data/vendor/assets/bower_components/codemirror/mode/groovy/groovy.js +226 -0
  1894. data/vendor/assets/bower_components/codemirror/mode/haml/haml.js +159 -0
  1895. data/vendor/assets/bower_components/codemirror/mode/haml/test.js +97 -0
  1896. data/vendor/assets/bower_components/codemirror/mode/haskell/haskell.js +267 -0
  1897. data/vendor/assets/bower_components/codemirror/mode/haxe/haxe.js +518 -0
  1898. data/vendor/assets/bower_components/codemirror/mode/htmlembedded/htmlembedded.js +86 -0
  1899. data/vendor/assets/bower_components/codemirror/mode/htmlmixed/htmlmixed.js +121 -0
  1900. data/vendor/assets/bower_components/codemirror/mode/http/http.js +113 -0
  1901. data/vendor/assets/bower_components/codemirror/mode/idl/idl.js +290 -0
  1902. data/vendor/assets/bower_components/codemirror/mode/jade/jade.js +590 -0
  1903. data/vendor/assets/bower_components/codemirror/mode/javascript/javascript.js +684 -0
  1904. data/vendor/assets/bower_components/codemirror/mode/javascript/json-ld.html +72 -0
  1905. data/vendor/assets/bower_components/codemirror/mode/javascript/test.js +194 -0
  1906. data/vendor/assets/bower_components/codemirror/mode/javascript/typescript.html +61 -0
  1907. data/vendor/assets/bower_components/codemirror/mode/jinja2/jinja2.js +142 -0
  1908. data/vendor/assets/bower_components/codemirror/mode/julia/julia.js +301 -0
  1909. data/vendor/assets/bower_components/codemirror/mode/kotlin/kotlin.js +280 -0
  1910. data/vendor/assets/bower_components/codemirror/mode/livescript/livescript.js +280 -0
  1911. data/vendor/assets/bower_components/codemirror/mode/lua/lua.js +159 -0
  1912. data/vendor/assets/bower_components/codemirror/mode/markdown/markdown.js +765 -0
  1913. data/vendor/assets/bower_components/codemirror/mode/markdown/test.js +754 -0
  1914. data/vendor/assets/bower_components/codemirror/mode/meta.js +160 -0
  1915. data/vendor/assets/bower_components/codemirror/mode/mirc/mirc.js +193 -0
  1916. data/vendor/assets/bower_components/codemirror/mode/mllike/mllike.js +205 -0
  1917. data/vendor/assets/bower_components/codemirror/mode/modelica/modelica.js +245 -0
  1918. data/vendor/assets/bower_components/codemirror/mode/nginx/nginx.js +178 -0
  1919. data/vendor/assets/bower_components/codemirror/mode/ntriples/ntriples.js +186 -0
  1920. data/vendor/assets/bower_components/codemirror/mode/octave/octave.js +135 -0
  1921. data/vendor/assets/bower_components/codemirror/mode/pascal/pascal.js +109 -0
  1922. data/vendor/assets/bower_components/codemirror/mode/pegjs/pegjs.js +114 -0
  1923. data/vendor/assets/bower_components/codemirror/mode/perl/perl.js +832 -0
  1924. data/vendor/assets/bower_components/codemirror/mode/php/php.js +226 -0
  1925. data/vendor/assets/bower_components/codemirror/mode/php/test.js +154 -0
  1926. data/vendor/assets/bower_components/codemirror/mode/pig/pig.js +188 -0
  1927. data/vendor/assets/bower_components/codemirror/mode/properties/properties.js +78 -0
  1928. data/vendor/assets/bower_components/codemirror/mode/puppet/puppet.js +220 -0
  1929. data/vendor/assets/bower_components/codemirror/mode/python/python.js +359 -0
  1930. data/vendor/assets/bower_components/codemirror/mode/q/q.js +139 -0
  1931. data/vendor/assets/bower_components/codemirror/mode/r/r.js +162 -0
  1932. data/vendor/assets/bower_components/codemirror/mode/rpm/rpm.js +101 -0
  1933. data/vendor/assets/bower_components/codemirror/mode/rst/rst.js +557 -0
  1934. data/vendor/assets/bower_components/codemirror/mode/ruby/ruby.js +285 -0
  1935. data/vendor/assets/bower_components/codemirror/mode/ruby/test.js +14 -0
  1936. data/vendor/assets/bower_components/codemirror/mode/rust/rust.js +451 -0
  1937. data/vendor/assets/bower_components/codemirror/mode/sass/sass.js +327 -0
  1938. data/vendor/assets/bower_components/codemirror/mode/scheme/scheme.js +248 -0
  1939. data/vendor/assets/bower_components/codemirror/mode/shell/shell.js +138 -0
  1940. data/vendor/assets/bower_components/codemirror/mode/shell/test.js +58 -0
  1941. data/vendor/assets/bower_components/codemirror/mode/sieve/sieve.js +193 -0
  1942. data/vendor/assets/bower_components/codemirror/mode/slim/slim.js +575 -0
  1943. data/vendor/assets/bower_components/codemirror/mode/slim/test.js +96 -0
  1944. data/vendor/assets/bower_components/codemirror/mode/smalltalk/smalltalk.js +168 -0
  1945. data/vendor/assets/bower_components/codemirror/mode/smarty/smarty.js +221 -0
  1946. data/vendor/assets/bower_components/codemirror/mode/smartymixed/smartymixed.js +197 -0
  1947. data/vendor/assets/bower_components/codemirror/mode/solr/solr.js +104 -0
  1948. data/vendor/assets/bower_components/codemirror/mode/sparql/sparql.js +174 -0
  1949. data/vendor/assets/bower_components/codemirror/mode/sql/sql.js +391 -0
  1950. data/vendor/assets/bower_components/codemirror/mode/stex/stex.js +253 -0
  1951. data/vendor/assets/bower_components/codemirror/mode/stex/test.js +123 -0
  1952. data/vendor/assets/bower_components/codemirror/mode/tcl/tcl.js +147 -0
  1953. data/vendor/assets/bower_components/codemirror/mode/textile/test.js +406 -0
  1954. data/vendor/assets/bower_components/codemirror/mode/textile/textile.js +553 -0
  1955. data/vendor/assets/bower_components/codemirror/mode/tiddlywiki/tiddlywiki.css +14 -0
  1956. data/vendor/assets/bower_components/codemirror/mode/tiddlywiki/tiddlywiki.js +369 -0
  1957. data/vendor/assets/bower_components/codemirror/mode/tiki/tiki.css +26 -0
  1958. data/vendor/assets/bower_components/codemirror/mode/tiki/tiki.js +323 -0
  1959. data/vendor/assets/bower_components/codemirror/mode/toml/toml.js +88 -0
  1960. data/vendor/assets/bower_components/codemirror/mode/tornado/tornado.js +68 -0
  1961. data/vendor/assets/bower_components/codemirror/mode/turtle/turtle.js +160 -0
  1962. data/vendor/assets/bower_components/codemirror/mode/vb/vb.js +274 -0
  1963. data/vendor/assets/bower_components/codemirror/mode/vbscript/vbscript.js +350 -0
  1964. data/vendor/assets/bower_components/codemirror/mode/velocity/velocity.js +201 -0
  1965. data/vendor/assets/bower_components/codemirror/mode/verilog/test.js +273 -0
  1966. data/vendor/assets/bower_components/codemirror/mode/verilog/verilog.js +364 -0
  1967. data/vendor/assets/bower_components/codemirror/mode/xml/test.js +51 -0
  1968. data/vendor/assets/bower_components/codemirror/mode/xml/xml.js +384 -0
  1969. data/vendor/assets/bower_components/codemirror/mode/xquery/test.js +67 -0
  1970. data/vendor/assets/bower_components/codemirror/mode/xquery/xquery.js +447 -0
  1971. data/vendor/assets/bower_components/codemirror/mode/yaml/yaml.js +117 -0
  1972. data/vendor/assets/bower_components/codemirror/mode/z80/z80.js +100 -0
  1973. data/vendor/assets/bower_components/codemirror/theme/3024-day.css +38 -0
  1974. data/vendor/assets/bower_components/codemirror/theme/3024-night.css +37 -0
  1975. data/vendor/assets/bower_components/codemirror/theme/ambiance-mobile.css +5 -0
  1976. data/vendor/assets/bower_components/codemirror/theme/ambiance.css +77 -0
  1977. data/vendor/assets/bower_components/codemirror/theme/base16-dark.css +36 -0
  1978. data/vendor/assets/bower_components/codemirror/theme/base16-light.css +36 -0
  1979. data/vendor/assets/bower_components/codemirror/theme/blackboard.css +30 -0
  1980. data/vendor/assets/bower_components/codemirror/theme/cobalt.css +23 -0
  1981. data/vendor/assets/bower_components/codemirror/theme/eclipse.css +23 -0
  1982. data/vendor/assets/bower_components/codemirror/theme/elegant.css +13 -0
  1983. data/vendor/assets/bower_components/codemirror/theme/erlang-dark.css +32 -0
  1984. data/vendor/assets/bower_components/codemirror/theme/lesser-dark.css +45 -0
  1985. data/vendor/assets/bower_components/codemirror/theme/mbo.css +35 -0
  1986. data/vendor/assets/bower_components/codemirror/theme/mdn-like.css +44 -0
  1987. data/vendor/assets/bower_components/codemirror/theme/midnight.css +45 -0
  1988. data/vendor/assets/bower_components/codemirror/theme/monokai.css +31 -0
  1989. data/vendor/assets/bower_components/codemirror/theme/neat.css +12 -0
  1990. data/vendor/assets/bower_components/codemirror/theme/neo.css +43 -0
  1991. data/vendor/assets/bower_components/codemirror/theme/night.css +26 -0
  1992. data/vendor/assets/bower_components/codemirror/theme/paraiso-dark.css +36 -0
  1993. data/vendor/assets/bower_components/codemirror/theme/paraiso-light.css +36 -0
  1994. data/vendor/assets/bower_components/codemirror/theme/pastel-on-dark.css +50 -0
  1995. data/vendor/assets/bower_components/codemirror/theme/rubyblue.css +23 -0
  1996. data/vendor/assets/bower_components/codemirror/theme/solarized.css +165 -0
  1997. data/vendor/assets/bower_components/codemirror/theme/the-matrix.css +28 -0
  1998. data/vendor/assets/bower_components/codemirror/theme/tomorrow-night-eighties.css +36 -0
  1999. data/vendor/assets/bower_components/codemirror/theme/twilight.css +30 -0
  2000. data/vendor/assets/bower_components/codemirror/theme/vibrant-ink.css +32 -0
  2001. data/vendor/assets/bower_components/codemirror/theme/xq-dark.css +51 -0
  2002. data/vendor/assets/bower_components/codemirror/theme/xq-light.css +43 -0
  2003. data/vendor/assets/bower_components/es5-shim/CHANGES +105 -0
  2004. data/vendor/assets/bower_components/es5-shim/CONTRIBUTORS.md +27 -0
  2005. data/vendor/assets/bower_components/es5-shim/LICENSE +19 -0
  2006. data/vendor/assets/bower_components/es5-shim/README.md +155 -0
  2007. data/vendor/assets/bower_components/es5-shim/es5-sham.js +446 -0
  2008. data/vendor/assets/bower_components/es5-shim/es5-sham.map +1 -0
  2009. data/vendor/assets/bower_components/es5-shim/es5-sham.min.js +2 -0
  2010. data/vendor/assets/bower_components/es5-shim/es5-shim.js +1360 -0
  2011. data/vendor/assets/bower_components/es5-shim/es5-shim.map +1 -0
  2012. data/vendor/assets/bower_components/es5-shim/es5-shim.min.js +2 -0
  2013. data/vendor/assets/bower_components/es5-shim/package.json +41 -0
  2014. data/vendor/assets/bower_components/es5-shim/tests/helpers/h-kill.js +70 -0
  2015. data/vendor/assets/bower_components/es5-shim/tests/helpers/h-matchers.js +34 -0
  2016. data/vendor/assets/bower_components/es5-shim/tests/helpers/h.js +3 -0
  2017. data/vendor/assets/bower_components/es5-shim/tests/index.html +64 -0
  2018. data/vendor/assets/bower_components/es5-shim/tests/index.min.html +63 -0
  2019. data/vendor/assets/bower_components/es5-shim/tests/lib/jasmine-html.js +190 -0
  2020. data/vendor/assets/bower_components/es5-shim/tests/lib/jasmine.css +166 -0
  2021. data/vendor/assets/bower_components/es5-shim/tests/lib/jasmine.js +2477 -0
  2022. data/vendor/assets/bower_components/es5-shim/tests/lib/jasmine_favicon.png +0 -0
  2023. data/vendor/assets/bower_components/es5-shim/tests/lib/json2.js +478 -0
  2024. data/vendor/assets/bower_components/es5-shim/tests/spec/helpers-jasmine.js +3 -0
  2025. data/vendor/assets/bower_components/es5-shim/tests/spec/s-array.js +1247 -0
  2026. data/vendor/assets/bower_components/es5-shim/tests/spec/s-date.js +160 -0
  2027. data/vendor/assets/bower_components/es5-shim/tests/spec/s-function.js +166 -0
  2028. data/vendor/assets/bower_components/es5-shim/tests/spec/s-global.js +40 -0
  2029. data/vendor/assets/bower_components/es5-shim/tests/spec/s-number.js +14 -0
  2030. data/vendor/assets/bower_components/es5-shim/tests/spec/s-object.js +181 -0
  2031. data/vendor/assets/bower_components/es5-shim/tests/spec/s-string.js +204 -0
  2032. data/vendor/assets/bower_components/flow.js/CHANGELOG.md +37 -0
  2033. data/vendor/assets/bower_components/flow.js/Gruntfile.js +132 -0
  2034. data/vendor/assets/bower_components/flow.js/LICENSE +21 -0
  2035. data/vendor/assets/bower_components/flow.js/README.md +263 -0
  2036. data/vendor/assets/bower_components/flow.js/bower.json +13 -0
  2037. data/vendor/assets/bower_components/flow.js/dist/flow.js +1532 -0
  2038. data/vendor/assets/bower_components/flow.js/dist/flow.min.js +2 -0
  2039. data/vendor/assets/bower_components/flow.js/karma.conf.js +114 -0
  2040. data/vendor/assets/bower_components/flow.js/package.json +50 -0
  2041. data/vendor/assets/bower_components/flow.js/src/flow.js +1532 -0
  2042. data/vendor/assets/bower_components/font-awesome/bower.json +23 -0
  2043. data/vendor/assets/bower_components/font-awesome/css/font-awesome.css +1672 -0
  2044. data/vendor/assets/bower_components/font-awesome/css/font-awesome.min.css +4 -0
  2045. data/vendor/assets/bower_components/font-awesome/fonts/FontAwesome.otf +0 -0
  2046. data/vendor/assets/bower_components/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  2047. data/vendor/assets/bower_components/font-awesome/fonts/fontawesome-webfont.svg +520 -0
  2048. data/vendor/assets/bower_components/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  2049. data/vendor/assets/bower_components/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  2050. data/vendor/assets/bower_components/font-awesome/less/bordered-pulled.less +16 -0
  2051. data/vendor/assets/bower_components/font-awesome/less/core.less +11 -0
  2052. data/vendor/assets/bower_components/font-awesome/less/extras.less +2 -0
  2053. data/vendor/assets/bower_components/font-awesome/less/fixed-width.less +6 -0
  2054. data/vendor/assets/bower_components/font-awesome/less/font-awesome.less +17 -0
  2055. data/vendor/assets/bower_components/font-awesome/less/icons.less +552 -0
  2056. data/vendor/assets/bower_components/font-awesome/less/larger.less +13 -0
  2057. data/vendor/assets/bower_components/font-awesome/less/list.less +19 -0
  2058. data/vendor/assets/bower_components/font-awesome/less/mixins.less +25 -0
  2059. data/vendor/assets/bower_components/font-awesome/less/path.less +14 -0
  2060. data/vendor/assets/bower_components/font-awesome/less/rotated-flipped.less +20 -0
  2061. data/vendor/assets/bower_components/font-awesome/less/spinning.less +29 -0
  2062. data/vendor/assets/bower_components/font-awesome/less/stacked.less +20 -0
  2063. data/vendor/assets/bower_components/font-awesome/less/variables.less +560 -0
  2064. data/vendor/assets/bower_components/font-awesome/scss/_bordered-pulled.scss +16 -0
  2065. data/vendor/assets/bower_components/font-awesome/scss/_core.scss +11 -0
  2066. data/vendor/assets/bower_components/font-awesome/scss/_extras.scss +44 -0
  2067. data/vendor/assets/bower_components/font-awesome/scss/_fixed-width.scss +6 -0
  2068. data/vendor/assets/bower_components/font-awesome/scss/_icons.scss +552 -0
  2069. data/vendor/assets/bower_components/font-awesome/scss/_larger.scss +13 -0
  2070. data/vendor/assets/bower_components/font-awesome/scss/_list.scss +19 -0
  2071. data/vendor/assets/bower_components/font-awesome/scss/_mixins.scss +25 -0
  2072. data/vendor/assets/bower_components/font-awesome/scss/_path.scss +14 -0
  2073. data/vendor/assets/bower_components/font-awesome/scss/_rotated-flipped.scss +20 -0
  2074. data/vendor/assets/bower_components/font-awesome/scss/_spinning.scss +29 -0
  2075. data/vendor/assets/bower_components/font-awesome/scss/_stacked.scss +20 -0
  2076. data/vendor/assets/bower_components/font-awesome/scss/_variables.scss +561 -0
  2077. data/vendor/assets/bower_components/font-awesome/scss/font-awesome.scss +17 -0
  2078. data/vendor/assets/bower_components/jquery/MIT-LICENSE.txt +21 -0
  2079. data/vendor/assets/bower_components/jquery/bower.json +27 -0
  2080. data/vendor/assets/bower_components/jquery/dist/jquery.js +9190 -0
  2081. data/vendor/assets/bower_components/jquery/dist/jquery.min.js +5 -0
  2082. data/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
  2083. data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +89 -0
  2084. data/vendor/assets/bower_components/jquery/src/ajax/load.js +75 -0
  2085. data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  2086. data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +28 -0
  2087. data/vendor/assets/bower_components/jquery/src/ajax/script.js +64 -0
  2088. data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  2089. data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  2090. data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +135 -0
  2091. data/vendor/assets/bower_components/jquery/src/ajax.js +806 -0
  2092. data/vendor/assets/bower_components/jquery/src/attributes/attr.js +143 -0
  2093. data/vendor/assets/bower_components/jquery/src/attributes/classes.js +158 -0
  2094. data/vendor/assets/bower_components/jquery/src/attributes/prop.js +96 -0
  2095. data/vendor/assets/bower_components/jquery/src/attributes/support.js +35 -0
  2096. data/vendor/assets/bower_components/jquery/src/attributes/val.js +163 -0
  2097. data/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
  2098. data/vendor/assets/bower_components/jquery/src/callbacks.js +205 -0
  2099. data/vendor/assets/bower_components/jquery/src/core/access.js +60 -0
  2100. data/vendor/assets/bower_components/jquery/src/core/init.js +123 -0
  2101. data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +39 -0
  2102. data/vendor/assets/bower_components/jquery/src/core/ready.js +97 -0
  2103. data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  2104. data/vendor/assets/bower_components/jquery/src/core.js +498 -0
  2105. data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +24 -0
  2106. data/vendor/assets/bower_components/jquery/src/css/curCSS.js +57 -0
  2107. data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  2108. data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  2109. data/vendor/assets/bower_components/jquery/src/css/support.js +91 -0
  2110. data/vendor/assets/bower_components/jquery/src/css/swap.js +28 -0
  2111. data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  2112. data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +5 -0
  2113. data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +13 -0
  2114. data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
  2115. data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  2116. data/vendor/assets/bower_components/jquery/src/css.js +451 -0
  2117. data/vendor/assets/bower_components/jquery/src/data/Data.js +181 -0
  2118. data/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
  2119. data/vendor/assets/bower_components/jquery/src/data/var/data_priv.js +5 -0
  2120. data/vendor/assets/bower_components/jquery/src/data/var/data_user.js +5 -0
  2121. data/vendor/assets/bower_components/jquery/src/data.js +179 -0
  2122. data/vendor/assets/bower_components/jquery/src/deferred.js +149 -0
  2123. data/vendor/assets/bower_components/jquery/src/deprecated.js +13 -0
  2124. data/vendor/assets/bower_components/jquery/src/dimensions.js +50 -0
  2125. data/vendor/assets/bower_components/jquery/src/effects/Tween.js +114 -0
  2126. data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  2127. data/vendor/assets/bower_components/jquery/src/effects.js +649 -0
  2128. data/vendor/assets/bower_components/jquery/src/event/alias.js +39 -0
  2129. data/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
  2130. data/vendor/assets/bower_components/jquery/src/event.js +868 -0
  2131. data/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
  2132. data/vendor/assets/bower_components/jquery/src/exports/global.js +32 -0
  2133. data/vendor/assets/bower_components/jquery/src/intro.js +44 -0
  2134. data/vendor/assets/bower_components/jquery/src/jquery.js +36 -0
  2135. data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  2136. data/vendor/assets/bower_components/jquery/src/manipulation/support.js +31 -0
  2137. data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  2138. data/vendor/assets/bower_components/jquery/src/manipulation.js +582 -0
  2139. data/vendor/assets/bower_components/jquery/src/offset.js +204 -0
  2140. data/vendor/assets/bower_components/jquery/src/outro.js +1 -0
  2141. data/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
  2142. data/vendor/assets/bower_components/jquery/src/queue.js +142 -0
  2143. data/vendor/assets/bower_components/jquery/src/selector-native.js +172 -0
  2144. data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
  2145. data/vendor/assets/bower_components/jquery/src/selector.js +1 -0
  2146. data/vendor/assets/bower_components/jquery/src/serialize.js +111 -0
  2147. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.js +2044 -0
  2148. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  2149. data/vendor/assets/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  2150. data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
  2151. data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  2152. data/vendor/assets/bower_components/jquery/src/traversing.js +200 -0
  2153. data/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
  2154. data/vendor/assets/bower_components/jquery/src/var/class2type.js +4 -0
  2155. data/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
  2156. data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
  2157. data/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
  2158. data/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
  2159. data/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
  2160. data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
  2161. data/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
  2162. data/vendor/assets/bower_components/jquery/src/var/strundefined.js +3 -0
  2163. data/vendor/assets/bower_components/jquery/src/var/support.js +4 -0
  2164. data/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
  2165. data/vendor/assets/bower_components/jquery/src/wrap.js +78 -0
  2166. data/vendor/assets/bower_components/lodash/LICENSE.txt +22 -0
  2167. data/vendor/assets/bower_components/lodash/bower.json +20 -0
  2168. data/vendor/assets/bower_components/lodash/lodash.js +11803 -0
  2169. data/vendor/assets/bower_components/lodash/lodash.min.js +89 -0
  2170. data/vendor/assets/bower_components/ng-alertify/LICENSE +20 -0
  2171. data/vendor/assets/bower_components/ng-alertify/README.md +82 -0
  2172. data/vendor/assets/bower_components/ng-alertify/bower.json +33 -0
  2173. data/vendor/assets/bower_components/ng-alertify/lib/sinon.js +5891 -0
  2174. data/vendor/assets/bower_components/ng-alertify/ng-alertify.js +67 -0
  2175. data/vendor/assets/bower_components/ng-ckeditor/Gruntfile.js +64 -0
  2176. data/vendor/assets/bower_components/ng-ckeditor/LICENSE +9 -0
  2177. data/vendor/assets/bower_components/ng-ckeditor/README.md +27 -0
  2178. data/vendor/assets/bower_components/ng-ckeditor/bower.json +13 -0
  2179. data/vendor/assets/bower_components/ng-ckeditor/examples/1.html +2 -0
  2180. data/vendor/assets/bower_components/ng-ckeditor/examples/checkspelling.php +147 -0
  2181. data/vendor/assets/bower_components/ng-ckeditor/examples/css/bootstrap.css +5359 -0
  2182. data/vendor/assets/bower_components/ng-ckeditor/examples/demo1.html +67 -0
  2183. data/vendor/assets/bower_components/ng-ckeditor/examples/demo2.html +51 -0
  2184. data/vendor/assets/bower_components/ng-ckeditor/examples/inlineall.html +334 -0
  2185. data/vendor/assets/bower_components/ng-ckeditor/examples/js/angular-mocks.js +1788 -0
  2186. data/vendor/assets/bower_components/ng-ckeditor/examples/js/angular-resource.min.js +10 -0
  2187. data/vendor/assets/bower_components/ng-ckeditor/examples/js/jquery-1.9.1.min.js +5 -0
  2188. data/vendor/assets/bower_components/ng-ckeditor/examples/spellcheck/handler.php +200 -0
  2189. data/vendor/assets/bower_components/ng-ckeditor/examples/test.php +28 -0
  2190. data/vendor/assets/bower_components/ng-ckeditor/karma.conf.js +47 -0
  2191. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/CHANGES.md +342 -0
  2192. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/LICENSE.md +1264 -0
  2193. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/README.md +39 -0
  2194. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/adapters/jquery.js +10 -0
  2195. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/build-config.js +86 -0
  2196. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/ckeditor.js +987 -0
  2197. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/config.js +38 -0
  2198. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/contents.css +106 -0
  2199. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/lang/en.js +5 -0
  2200. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/lang/ru.js +5 -0
  2201. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
  2202. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  2203. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +9 -0
  2204. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +9 -0
  2205. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +10 -0
  2206. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +10 -0
  2207. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +9 -0
  2208. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +9 -0
  2209. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +10 -0
  2210. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +10 -0
  2211. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
  2212. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +10 -0
  2213. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +10 -0
  2214. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +9 -0
  2215. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +9 -0
  2216. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +10 -0
  2217. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +10 -0
  2218. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +11 -0
  2219. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +10 -0
  2220. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +9 -0
  2221. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +9 -0
  2222. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +9 -0
  2223. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +9 -0
  2224. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +10 -0
  2225. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +9 -0
  2226. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +10 -0
  2227. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +8 -0
  2228. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +9 -0
  2229. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +9 -0
  2230. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +10 -0
  2231. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +9 -0
  2232. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +11 -0
  2233. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +9 -0
  2234. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +9 -0
  2235. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +9 -0
  2236. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +10 -0
  2237. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +9 -0
  2238. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +10 -0
  2239. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +9 -0
  2240. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +10 -0
  2241. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +9 -0
  2242. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +9 -0
  2243. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +8 -0
  2244. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +10 -0
  2245. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +10 -0
  2246. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +9 -0
  2247. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +9 -0
  2248. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +9 -0
  2249. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +10 -0
  2250. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +9 -0
  2251. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +10 -0
  2252. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +9 -0
  2253. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +10 -0
  2254. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +9 -0
  2255. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +7 -0
  2256. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
  2257. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  2258. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
  2259. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/icons.png +0 -0
  2260. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/icons_hidpi.png +0 -0
  2261. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/image/dialogs/image.js +43 -0
  2262. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/image/images/noimage.png +0 -0
  2263. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/image2/dialogs/image2.js +14 -0
  2264. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/link/dialogs/anchor.js +8 -0
  2265. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/link/dialogs/link.js +37 -0
  2266. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/link/images/anchor.png +0 -0
  2267. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  2268. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
  2269. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/magicline/images/icon.png +0 -0
  2270. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/pastefromword/filter/default.js +31 -0
  2271. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/scayt/LICENSE.md +28 -0
  2272. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/scayt/README.md +25 -0
  2273. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/scayt/dialogs/options.js +20 -0
  2274. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  2275. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  2276. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
  2277. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
  2278. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
  2279. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  2280. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  2281. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  2282. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  2283. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  2284. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  2285. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
  2286. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  2287. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
  2288. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  2289. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
  2290. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  2291. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
  2292. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/he.js +12 -0
  2293. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  2294. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
  2295. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
  2296. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  2297. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
  2298. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/km.js +13 -0
  2299. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
  2300. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  2301. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  2302. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  2303. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  2304. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  2305. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  2306. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
  2307. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
  2308. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
  2309. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  2310. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
  2311. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
  2312. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  2313. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  2314. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  2315. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  2316. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
  2317. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/vi.js +14 -0
  2318. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  2319. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
  2320. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/table/dialogs/table.js +21 -0
  2321. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -0
  2322. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/dialogs/templates.css +84 -0
  2323. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/dialogs/templates.js +10 -0
  2324. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/templates/default.js +6 -0
  2325. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  2326. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  2327. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  2328. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/widget/images/handle.png +0 -0
  2329. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/LICENSE.md +28 -0
  2330. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/README.md +25 -0
  2331. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
  2332. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/tmp.html +118 -0
  2333. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  2334. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
  2335. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/wsc.js +67 -0
  2336. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
  2337. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/ajax.html +82 -0
  2338. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/api.html +207 -0
  2339. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/appendto.html +57 -0
  2340. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/inlineall/logo.png +0 -0
  2341. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/outputxhtml/outputxhtml.css +204 -0
  2342. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/posteddata.php +59 -0
  2343. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/sample.css +3 -0
  2344. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/sample.jpg +0 -0
  2345. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/assets/uilanguages/languages.js +7 -0
  2346. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/datafiltering.html +401 -0
  2347. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/divreplace.html +141 -0
  2348. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/index.html +137 -0
  2349. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/inlineall.html +311 -0
  2350. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/inlinebycode.html +121 -0
  2351. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/inlinetextarea.html +110 -0
  2352. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/jquery.html +97 -0
  2353. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/dialog/assets/my_dialog.js +48 -0
  2354. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/dialog/dialog.html +187 -0
  2355. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/divarea/divarea.html +61 -0
  2356. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/enterkey/enterkey.html +103 -0
  2357. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla +0 -0
  2358. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf +0 -0
  2359. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +18 -0
  2360. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/htmlwriter/outputforflash.html +280 -0
  2361. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/htmlwriter/outputhtml.html +221 -0
  2362. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/image2/assets/image1.jpg +0 -0
  2363. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/image2/assets/image2.jpg +0 -0
  2364. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/image2/contents.css +19 -0
  2365. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/image2/image2.html +70 -0
  2366. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/magicline/magicline.html +206 -0
  2367. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/stylesheetparser/assets/sample.css +70 -0
  2368. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/stylesheetparser/stylesheetparser.html +82 -0
  2369. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/toolbar/toolbar.html +231 -0
  2370. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/plugins/wysiwygarea/fullpage.html +77 -0
  2371. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/readonly.html +73 -0
  2372. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/replacebyclass.html +57 -0
  2373. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/replacebycode.html +56 -0
  2374. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/sample.css +356 -0
  2375. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/sample.js +50 -0
  2376. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/sample_posteddata.php +16 -0
  2377. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/tabindex.html +75 -0
  2378. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/uicolor.html +69 -0
  2379. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/uilanguages.html +119 -0
  2380. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/samples/xhtmlstyle.html +231 -0
  2381. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog.css +5 -0
  2382. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog_ie.css +5 -0
  2383. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog_ie7.css +5 -0
  2384. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog_ie8.css +5 -0
  2385. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  2386. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/dialog_opera.css +5 -0
  2387. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor.css +5 -0
  2388. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor_gecko.css +5 -0
  2389. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor_ie.css +5 -0
  2390. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor_ie7.css +5 -0
  2391. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor_ie8.css +5 -0
  2392. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/editor_iequirks.css +5 -0
  2393. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/icons.png +0 -0
  2394. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/icons_hidpi.png +0 -0
  2395. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/arrow.png +0 -0
  2396. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/close.png +0 -0
  2397. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  2398. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  2399. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  2400. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  2401. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/lock-open.png +0 -0
  2402. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/lock.png +0 -0
  2403. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/images/refresh.png +0 -0
  2404. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/skins/moono/readme.md +51 -0
  2405. data/vendor/assets/bower_components/ng-ckeditor/libs/ckeditor/styles.js +111 -0
  2406. data/vendor/assets/bower_components/ng-ckeditor/ng-ckeditor.css +1 -0
  2407. data/vendor/assets/bower_components/ng-ckeditor/ng-ckeditor.js +142 -0
  2408. data/vendor/assets/bower_components/ng-ckeditor/ng-ckeditor.min.js +5 -0
  2409. data/vendor/assets/bower_components/ng-ckeditor/ng-ckeditor.min.map +1 -0
  2410. data/vendor/assets/bower_components/ng-ckeditor/package.json +26 -0
  2411. data/vendor/assets/bower_components/ng-ckeditor/src/scripts/01-intro.js +9 -0
  2412. data/vendor/assets/bower_components/ng-ckeditor/src/scripts/02-directive.js +130 -0
  2413. data/vendor/assets/bower_components/ng-ckeditor/src/scripts/03-outro.js +2 -0
  2414. data/vendor/assets/bower_components/ng-ckeditor/src/styles/ng-ckeditor.less +3 -0
  2415. data/vendor/assets/bower_components/ng-ckeditor/test/directiveOnFormSpec.js +134 -0
  2416. data/vendor/assets/bower_components/ng-ckeditor/test/directiveSpec.js +131 -0
  2417. data/vendor/assets/bower_components/ng-flow/bower.json +24 -0
  2418. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.js +1812 -0
  2419. data/vendor/assets/bower_components/ng-flow/dist/ng-flow-standalone.min.js +2 -0
  2420. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.js +279 -0
  2421. data/vendor/assets/bower_components/ng-flow/dist/ng-flow.min.js +2 -0
  2422. data/vendor/assets/bower_components/ng-flow/src/angular-flow.js +2 -0
  2423. data/vendor/assets/bower_components/ng-flow/src/directives/btn.js +14 -0
  2424. data/vendor/assets/bower_components/ng-flow/src/directives/drag-events.js +56 -0
  2425. data/vendor/assets/bower_components/ng-flow/src/directives/drop.js +26 -0
  2426. data/vendor/assets/bower_components/ng-flow/src/directives/events.js +49 -0
  2427. data/vendor/assets/bower_components/ng-flow/src/directives/img.js +22 -0
  2428. data/vendor/assets/bower_components/ng-flow/src/directives/init.js +37 -0
  2429. data/vendor/assets/bower_components/ng-flow/src/directives/transfers.js +10 -0
  2430. data/vendor/assets/bower_components/ng-flow/src/provider.js +62 -0
  2431. data/vendor/assets/bower_components/ng-sortable/LICENSE +21 -0
  2432. data/vendor/assets/bower_components/ng-sortable/README.md +285 -0
  2433. data/vendor/assets/bower_components/ng-sortable/bower.json +37 -0
  2434. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.css +38 -0
  2435. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.js +1087 -0
  2436. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.min.css +2 -0
  2437. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.min.js +1 -0
  2438. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.style.css +30 -0
  2439. data/vendor/assets/bower_components/ng-sortable/dist/ng-sortable.style.min.css +2 -0
  2440. data/vendor/assets/bower_components/restangular/CHANGELOG.md +18 -0
  2441. data/vendor/assets/bower_components/restangular/CONTRIBUTE.md +31 -0
  2442. data/vendor/assets/bower_components/restangular/Gruntfile.js +149 -0
  2443. data/vendor/assets/bower_components/restangular/README.md +1336 -0
  2444. data/vendor/assets/bower_components/restangular/bower.json +19 -0
  2445. data/vendor/assets/bower_components/restangular/dist/restangular.js +1355 -0
  2446. data/vendor/assets/bower_components/restangular/dist/restangular.min.js +6 -0
  2447. data/vendor/assets/bower_components/restangular/dist/restangular.zip +0 -0
  2448. data/vendor/assets/bower_components/restangular/karma.conf.js +74 -0
  2449. data/vendor/assets/bower_components/restangular/karma.underscore.conf.js +74 -0
  2450. data/vendor/assets/bower_components/restangular/license.md +21 -0
  2451. data/vendor/assets/bower_components/restangular/package.json +55 -0
  2452. data/vendor/assets/bower_components/restangular/src/restangular.js +1350 -0
  2453. data/vendor/assets/bower_components/restangular/test/restangularSpec.js +1136 -0
  2454. metadata +2453 -2
@@ -0,0 +1,3857 @@
1
+ /*
2
+ * angular-ui-bootstrap
3
+ * http://angular-ui.github.io/bootstrap/
4
+
5
+ * Version: 0.11.2 - 2014-09-26
6
+ * License: MIT
7
+ */
8
+ angular.module("ui.bootstrap", ["ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);
9
+ angular.module('ui.bootstrap.transition', [])
10
+
11
+ /**
12
+ * $transition service provides a consistent interface to trigger CSS 3 transitions and to be informed when they complete.
13
+ * @param {DOMElement} element The DOMElement that will be animated.
14
+ * @param {string|object|function} trigger The thing that will cause the transition to start:
15
+ * - As a string, it represents the css class to be added to the element.
16
+ * - As an object, it represents a hash of style attributes to be applied to the element.
17
+ * - As a function, it represents a function to be called that will cause the transition to occur.
18
+ * @return {Promise} A promise that is resolved when the transition finishes.
19
+ */
20
+ .factory('$transition', ['$q', '$timeout', '$rootScope', function($q, $timeout, $rootScope) {
21
+
22
+ var $transition = function(element, trigger, options) {
23
+ options = options || {};
24
+ var deferred = $q.defer();
25
+ var endEventName = $transition[options.animation ? 'animationEndEventName' : 'transitionEndEventName'];
26
+
27
+ var transitionEndHandler = function(event) {
28
+ $rootScope.$apply(function() {
29
+ element.unbind(endEventName, transitionEndHandler);
30
+ deferred.resolve(element);
31
+ });
32
+ };
33
+
34
+ if (endEventName) {
35
+ element.bind(endEventName, transitionEndHandler);
36
+ }
37
+
38
+ // Wrap in a timeout to allow the browser time to update the DOM before the transition is to occur
39
+ $timeout(function() {
40
+ if ( angular.isString(trigger) ) {
41
+ element.addClass(trigger);
42
+ } else if ( angular.isFunction(trigger) ) {
43
+ trigger(element);
44
+ } else if ( angular.isObject(trigger) ) {
45
+ element.css(trigger);
46
+ }
47
+ //If browser does not support transitions, instantly resolve
48
+ if ( !endEventName ) {
49
+ deferred.resolve(element);
50
+ }
51
+ });
52
+
53
+ // Add our custom cancel function to the promise that is returned
54
+ // We can call this if we are about to run a new transition, which we know will prevent this transition from ending,
55
+ // i.e. it will therefore never raise a transitionEnd event for that transition
56
+ deferred.promise.cancel = function() {
57
+ if ( endEventName ) {
58
+ element.unbind(endEventName, transitionEndHandler);
59
+ }
60
+ deferred.reject('Transition cancelled');
61
+ };
62
+
63
+ return deferred.promise;
64
+ };
65
+
66
+ // Work out the name of the transitionEnd event
67
+ var transElement = document.createElement('trans');
68
+ var transitionEndEventNames = {
69
+ 'WebkitTransition': 'webkitTransitionEnd',
70
+ 'MozTransition': 'transitionend',
71
+ 'OTransition': 'oTransitionEnd',
72
+ 'transition': 'transitionend'
73
+ };
74
+ var animationEndEventNames = {
75
+ 'WebkitTransition': 'webkitAnimationEnd',
76
+ 'MozTransition': 'animationend',
77
+ 'OTransition': 'oAnimationEnd',
78
+ 'transition': 'animationend'
79
+ };
80
+ function findEndEventName(endEventNames) {
81
+ for (var name in endEventNames){
82
+ if (transElement.style[name] !== undefined) {
83
+ return endEventNames[name];
84
+ }
85
+ }
86
+ }
87
+ $transition.transitionEndEventName = findEndEventName(transitionEndEventNames);
88
+ $transition.animationEndEventName = findEndEventName(animationEndEventNames);
89
+ return $transition;
90
+ }]);
91
+
92
+ angular.module('ui.bootstrap.collapse', ['ui.bootstrap.transition'])
93
+
94
+ .directive('collapse', ['$transition', function ($transition) {
95
+
96
+ return {
97
+ link: function (scope, element, attrs) {
98
+
99
+ var initialAnimSkip = true;
100
+ var currentTransition;
101
+
102
+ function doTransition(change) {
103
+ var newTransition = $transition(element, change);
104
+ if (currentTransition) {
105
+ currentTransition.cancel();
106
+ }
107
+ currentTransition = newTransition;
108
+ newTransition.then(newTransitionDone, newTransitionDone);
109
+ return newTransition;
110
+
111
+ function newTransitionDone() {
112
+ // Make sure it's this transition, otherwise, leave it alone.
113
+ if (currentTransition === newTransition) {
114
+ currentTransition = undefined;
115
+ }
116
+ }
117
+ }
118
+
119
+ function expand() {
120
+ if (initialAnimSkip) {
121
+ initialAnimSkip = false;
122
+ expandDone();
123
+ } else {
124
+ element.removeClass('collapse').addClass('collapsing');
125
+ doTransition({ height: element[0].scrollHeight + 'px' }).then(expandDone);
126
+ }
127
+ }
128
+
129
+ function expandDone() {
130
+ element.removeClass('collapsing');
131
+ element.addClass('collapse in');
132
+ element.css({height: 'auto'});
133
+ }
134
+
135
+ function collapse() {
136
+ if (initialAnimSkip) {
137
+ initialAnimSkip = false;
138
+ collapseDone();
139
+ element.css({height: 0});
140
+ } else {
141
+ // CSS transitions don't work with height: auto, so we have to manually change the height to a specific value
142
+ element.css({ height: element[0].scrollHeight + 'px' });
143
+ //trigger reflow so a browser realizes that height was updated from auto to a specific value
144
+ var x = element[0].offsetWidth;
145
+
146
+ element.removeClass('collapse in').addClass('collapsing');
147
+
148
+ doTransition({ height: 0 }).then(collapseDone);
149
+ }
150
+ }
151
+
152
+ function collapseDone() {
153
+ element.removeClass('collapsing');
154
+ element.addClass('collapse');
155
+ }
156
+
157
+ scope.$watch(attrs.collapse, function (shouldCollapse) {
158
+ if (shouldCollapse) {
159
+ collapse();
160
+ } else {
161
+ expand();
162
+ }
163
+ });
164
+ }
165
+ };
166
+ }]);
167
+
168
+ angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse'])
169
+
170
+ .constant('accordionConfig', {
171
+ closeOthers: true
172
+ })
173
+
174
+ .controller('AccordionController', ['$scope', '$attrs', 'accordionConfig', function ($scope, $attrs, accordionConfig) {
175
+
176
+ // This array keeps track of the accordion groups
177
+ this.groups = [];
178
+
179
+ // Ensure that all the groups in this accordion are closed, unless close-others explicitly says not to
180
+ this.closeOthers = function(openGroup) {
181
+ var closeOthers = angular.isDefined($attrs.closeOthers) ? $scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers;
182
+ if ( closeOthers ) {
183
+ angular.forEach(this.groups, function (group) {
184
+ if ( group !== openGroup ) {
185
+ group.isOpen = false;
186
+ }
187
+ });
188
+ }
189
+ };
190
+
191
+ // This is called from the accordion-group directive to add itself to the accordion
192
+ this.addGroup = function(groupScope) {
193
+ var that = this;
194
+ this.groups.push(groupScope);
195
+
196
+ groupScope.$on('$destroy', function (event) {
197
+ that.removeGroup(groupScope);
198
+ });
199
+ };
200
+
201
+ // This is called from the accordion-group directive when to remove itself
202
+ this.removeGroup = function(group) {
203
+ var index = this.groups.indexOf(group);
204
+ if ( index !== -1 ) {
205
+ this.groups.splice(index, 1);
206
+ }
207
+ };
208
+
209
+ }])
210
+
211
+ // The accordion directive simply sets up the directive controller
212
+ // and adds an accordion CSS class to itself element.
213
+ .directive('accordion', function () {
214
+ return {
215
+ restrict:'EA',
216
+ controller:'AccordionController',
217
+ transclude: true,
218
+ replace: false,
219
+ templateUrl: 'template/accordion/accordion.html'
220
+ };
221
+ })
222
+
223
+ // The accordion-group directive indicates a block of html that will expand and collapse in an accordion
224
+ .directive('accordionGroup', function() {
225
+ return {
226
+ require:'^accordion', // We need this directive to be inside an accordion
227
+ restrict:'EA',
228
+ transclude:true, // It transcludes the contents of the directive into the template
229
+ replace: true, // The element containing the directive will be replaced with the template
230
+ templateUrl:'template/accordion/accordion-group.html',
231
+ scope: {
232
+ heading: '@', // Interpolate the heading attribute onto this scope
233
+ isOpen: '=?',
234
+ isDisabled: '=?'
235
+ },
236
+ controller: function() {
237
+ this.setHeading = function(element) {
238
+ this.heading = element;
239
+ };
240
+ },
241
+ link: function(scope, element, attrs, accordionCtrl) {
242
+ accordionCtrl.addGroup(scope);
243
+
244
+ scope.$watch('isOpen', function(value) {
245
+ if ( value ) {
246
+ accordionCtrl.closeOthers(scope);
247
+ }
248
+ });
249
+
250
+ scope.toggleOpen = function() {
251
+ if ( !scope.isDisabled ) {
252
+ scope.isOpen = !scope.isOpen;
253
+ }
254
+ };
255
+ }
256
+ };
257
+ })
258
+
259
+ // Use accordion-heading below an accordion-group to provide a heading containing HTML
260
+ // <accordion-group>
261
+ // <accordion-heading>Heading containing HTML - <img src="..."></accordion-heading>
262
+ // </accordion-group>
263
+ .directive('accordionHeading', function() {
264
+ return {
265
+ restrict: 'EA',
266
+ transclude: true, // Grab the contents to be used as the heading
267
+ template: '', // In effect remove this element!
268
+ replace: true,
269
+ require: '^accordionGroup',
270
+ link: function(scope, element, attr, accordionGroupCtrl, transclude) {
271
+ // Pass the heading to the accordion-group controller
272
+ // so that it can be transcluded into the right place in the template
273
+ // [The second parameter to transclude causes the elements to be cloned so that they work in ng-repeat]
274
+ accordionGroupCtrl.setHeading(transclude(scope, function() {}));
275
+ }
276
+ };
277
+ })
278
+
279
+ // Use in the accordion-group template to indicate where you want the heading to be transcluded
280
+ // You must provide the property on the accordion-group controller that will hold the transcluded element
281
+ // <div class="accordion-group">
282
+ // <div class="accordion-heading" ><a ... accordion-transclude="heading">...</a></div>
283
+ // ...
284
+ // </div>
285
+ .directive('accordionTransclude', function() {
286
+ return {
287
+ require: '^accordionGroup',
288
+ link: function(scope, element, attr, controller) {
289
+ scope.$watch(function() { return controller[attr.accordionTransclude]; }, function(heading) {
290
+ if ( heading ) {
291
+ element.html('');
292
+ element.append(heading);
293
+ }
294
+ });
295
+ }
296
+ };
297
+ });
298
+
299
+ angular.module('ui.bootstrap.alert', [])
300
+
301
+ .controller('AlertController', ['$scope', '$attrs', function ($scope, $attrs) {
302
+ $scope.closeable = 'close' in $attrs;
303
+ }])
304
+
305
+ .directive('alert', function () {
306
+ return {
307
+ restrict:'EA',
308
+ controller:'AlertController',
309
+ templateUrl:'template/alert/alert.html',
310
+ transclude:true,
311
+ replace:true,
312
+ scope: {
313
+ type: '@',
314
+ close: '&'
315
+ }
316
+ };
317
+ });
318
+
319
+ angular.module('ui.bootstrap.bindHtml', [])
320
+
321
+ .directive('bindHtmlUnsafe', function () {
322
+ return function (scope, element, attr) {
323
+ element.addClass('ng-binding').data('$binding', attr.bindHtmlUnsafe);
324
+ scope.$watch(attr.bindHtmlUnsafe, function bindHtmlUnsafeWatchAction(value) {
325
+ element.html(value || '');
326
+ });
327
+ };
328
+ });
329
+ angular.module('ui.bootstrap.buttons', [])
330
+
331
+ .constant('buttonConfig', {
332
+ activeClass: 'active',
333
+ toggleEvent: 'click'
334
+ })
335
+
336
+ .controller('ButtonsController', ['buttonConfig', function(buttonConfig) {
337
+ this.activeClass = buttonConfig.activeClass || 'active';
338
+ this.toggleEvent = buttonConfig.toggleEvent || 'click';
339
+ }])
340
+
341
+ .directive('btnRadio', function () {
342
+ return {
343
+ require: ['btnRadio', 'ngModel'],
344
+ controller: 'ButtonsController',
345
+ link: function (scope, element, attrs, ctrls) {
346
+ var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1];
347
+
348
+ //model -> UI
349
+ ngModelCtrl.$render = function () {
350
+ element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, scope.$eval(attrs.btnRadio)));
351
+ };
352
+
353
+ //ui->model
354
+ element.bind(buttonsCtrl.toggleEvent, function () {
355
+ var isActive = element.hasClass(buttonsCtrl.activeClass);
356
+
357
+ if (!isActive || angular.isDefined(attrs.uncheckable)) {
358
+ scope.$apply(function () {
359
+ ngModelCtrl.$setViewValue(isActive ? null : scope.$eval(attrs.btnRadio));
360
+ ngModelCtrl.$render();
361
+ });
362
+ }
363
+ });
364
+ }
365
+ };
366
+ })
367
+
368
+ .directive('btnCheckbox', function () {
369
+ return {
370
+ require: ['btnCheckbox', 'ngModel'],
371
+ controller: 'ButtonsController',
372
+ link: function (scope, element, attrs, ctrls) {
373
+ var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1];
374
+
375
+ function getTrueValue() {
376
+ return getCheckboxValue(attrs.btnCheckboxTrue, true);
377
+ }
378
+
379
+ function getFalseValue() {
380
+ return getCheckboxValue(attrs.btnCheckboxFalse, false);
381
+ }
382
+
383
+ function getCheckboxValue(attributeValue, defaultValue) {
384
+ var val = scope.$eval(attributeValue);
385
+ return angular.isDefined(val) ? val : defaultValue;
386
+ }
387
+
388
+ //model -> UI
389
+ ngModelCtrl.$render = function () {
390
+ element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, getTrueValue()));
391
+ };
392
+
393
+ //ui->model
394
+ element.bind(buttonsCtrl.toggleEvent, function () {
395
+ scope.$apply(function () {
396
+ ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue());
397
+ ngModelCtrl.$render();
398
+ });
399
+ });
400
+ }
401
+ };
402
+ });
403
+
404
+ /**
405
+ * @ngdoc overview
406
+ * @name ui.bootstrap.carousel
407
+ *
408
+ * @description
409
+ * AngularJS version of an image carousel.
410
+ *
411
+ */
412
+ angular.module('ui.bootstrap.carousel', ['ui.bootstrap.transition'])
413
+ .controller('CarouselController', ['$scope', '$timeout', '$transition', function ($scope, $timeout, $transition) {
414
+ var self = this,
415
+ slides = self.slides = $scope.slides = [],
416
+ currentIndex = -1,
417
+ currentTimeout, isPlaying;
418
+ self.currentSlide = null;
419
+
420
+ var destroyed = false;
421
+ /* direction: "prev" or "next" */
422
+ self.select = $scope.select = function(nextSlide, direction) {
423
+ var nextIndex = slides.indexOf(nextSlide);
424
+ //Decide direction if it's not given
425
+ if (direction === undefined) {
426
+ direction = nextIndex > currentIndex ? 'next' : 'prev';
427
+ }
428
+ if (nextSlide && nextSlide !== self.currentSlide) {
429
+ if ($scope.$currentTransition) {
430
+ $scope.$currentTransition.cancel();
431
+ //Timeout so ng-class in template has time to fix classes for finished slide
432
+ $timeout(goNext);
433
+ } else {
434
+ goNext();
435
+ }
436
+ }
437
+ function goNext() {
438
+ // Scope has been destroyed, stop here.
439
+ if (destroyed) { return; }
440
+ //If we have a slide to transition from and we have a transition type and we're allowed, go
441
+ if (self.currentSlide && angular.isString(direction) && !$scope.noTransition && nextSlide.$element) {
442
+ //We shouldn't do class manip in here, but it's the same weird thing bootstrap does. need to fix sometime
443
+ nextSlide.$element.addClass(direction);
444
+ var reflow = nextSlide.$element[0].offsetWidth; //force reflow
445
+
446
+ //Set all other slides to stop doing their stuff for the new transition
447
+ angular.forEach(slides, function(slide) {
448
+ angular.extend(slide, {direction: '', entering: false, leaving: false, active: false});
449
+ });
450
+ angular.extend(nextSlide, {direction: direction, active: true, entering: true});
451
+ angular.extend(self.currentSlide||{}, {direction: direction, leaving: true});
452
+
453
+ $scope.$currentTransition = $transition(nextSlide.$element, {});
454
+ //We have to create new pointers inside a closure since next & current will change
455
+ (function(next,current) {
456
+ $scope.$currentTransition.then(
457
+ function(){ transitionDone(next, current); },
458
+ function(){ transitionDone(next, current); }
459
+ );
460
+ }(nextSlide, self.currentSlide));
461
+ } else {
462
+ transitionDone(nextSlide, self.currentSlide);
463
+ }
464
+ self.currentSlide = nextSlide;
465
+ currentIndex = nextIndex;
466
+ //every time you change slides, reset the timer
467
+ restartTimer();
468
+ }
469
+ function transitionDone(next, current) {
470
+ angular.extend(next, {direction: '', active: true, leaving: false, entering: false});
471
+ angular.extend(current||{}, {direction: '', active: false, leaving: false, entering: false});
472
+ $scope.$currentTransition = null;
473
+ }
474
+ };
475
+ $scope.$on('$destroy', function () {
476
+ destroyed = true;
477
+ });
478
+
479
+ /* Allow outside people to call indexOf on slides array */
480
+ self.indexOfSlide = function(slide) {
481
+ return slides.indexOf(slide);
482
+ };
483
+
484
+ $scope.next = function() {
485
+ var newIndex = (currentIndex + 1) % slides.length;
486
+
487
+ //Prevent this user-triggered transition from occurring if there is already one in progress
488
+ if (!$scope.$currentTransition) {
489
+ return self.select(slides[newIndex], 'next');
490
+ }
491
+ };
492
+
493
+ $scope.prev = function() {
494
+ var newIndex = currentIndex - 1 < 0 ? slides.length - 1 : currentIndex - 1;
495
+
496
+ //Prevent this user-triggered transition from occurring if there is already one in progress
497
+ if (!$scope.$currentTransition) {
498
+ return self.select(slides[newIndex], 'prev');
499
+ }
500
+ };
501
+
502
+ $scope.isActive = function(slide) {
503
+ return self.currentSlide === slide;
504
+ };
505
+
506
+ $scope.$watch('interval', restartTimer);
507
+ $scope.$on('$destroy', resetTimer);
508
+
509
+ function restartTimer() {
510
+ resetTimer();
511
+ var interval = +$scope.interval;
512
+ if (!isNaN(interval) && interval>=0) {
513
+ currentTimeout = $timeout(timerFn, interval);
514
+ }
515
+ }
516
+
517
+ function resetTimer() {
518
+ if (currentTimeout) {
519
+ $timeout.cancel(currentTimeout);
520
+ currentTimeout = null;
521
+ }
522
+ }
523
+
524
+ function timerFn() {
525
+ if (isPlaying) {
526
+ $scope.next();
527
+ restartTimer();
528
+ } else {
529
+ $scope.pause();
530
+ }
531
+ }
532
+
533
+ $scope.play = function() {
534
+ if (!isPlaying) {
535
+ isPlaying = true;
536
+ restartTimer();
537
+ }
538
+ };
539
+ $scope.pause = function() {
540
+ if (!$scope.noPause) {
541
+ isPlaying = false;
542
+ resetTimer();
543
+ }
544
+ };
545
+
546
+ self.addSlide = function(slide, element) {
547
+ slide.$element = element;
548
+ slides.push(slide);
549
+ //if this is the first slide or the slide is set to active, select it
550
+ if(slides.length === 1 || slide.active) {
551
+ self.select(slides[slides.length-1]);
552
+ if (slides.length == 1) {
553
+ $scope.play();
554
+ }
555
+ } else {
556
+ slide.active = false;
557
+ }
558
+ };
559
+
560
+ self.removeSlide = function(slide) {
561
+ //get the index of the slide inside the carousel
562
+ var index = slides.indexOf(slide);
563
+ slides.splice(index, 1);
564
+ if (slides.length > 0 && slide.active) {
565
+ if (index >= slides.length) {
566
+ self.select(slides[index-1]);
567
+ } else {
568
+ self.select(slides[index]);
569
+ }
570
+ } else if (currentIndex > index) {
571
+ currentIndex--;
572
+ }
573
+ };
574
+
575
+ }])
576
+
577
+ /**
578
+ * @ngdoc directive
579
+ * @name ui.bootstrap.carousel.directive:carousel
580
+ * @restrict EA
581
+ *
582
+ * @description
583
+ * Carousel is the outer container for a set of image 'slides' to showcase.
584
+ *
585
+ * @param {number=} interval The time, in milliseconds, that it will take the carousel to go to the next slide.
586
+ * @param {boolean=} noTransition Whether to disable transitions on the carousel.
587
+ * @param {boolean=} noPause Whether to disable pausing on the carousel (by default, the carousel interval pauses on hover).
588
+ *
589
+ * @example
590
+ <example module="ui.bootstrap">
591
+ <file name="index.html">
592
+ <carousel>
593
+ <slide>
594
+ <img src="http://placekitten.com/150/150" style="margin:auto;">
595
+ <div class="carousel-caption">
596
+ <p>Beautiful!</p>
597
+ </div>
598
+ </slide>
599
+ <slide>
600
+ <img src="http://placekitten.com/100/150" style="margin:auto;">
601
+ <div class="carousel-caption">
602
+ <p>D'aww!</p>
603
+ </div>
604
+ </slide>
605
+ </carousel>
606
+ </file>
607
+ <file name="demo.css">
608
+ .carousel-indicators {
609
+ top: auto;
610
+ bottom: 15px;
611
+ }
612
+ </file>
613
+ </example>
614
+ */
615
+ .directive('carousel', [function() {
616
+ return {
617
+ restrict: 'EA',
618
+ transclude: true,
619
+ replace: true,
620
+ controller: 'CarouselController',
621
+ require: 'carousel',
622
+ templateUrl: 'template/carousel/carousel.html',
623
+ scope: {
624
+ interval: '=',
625
+ noTransition: '=',
626
+ noPause: '='
627
+ }
628
+ };
629
+ }])
630
+
631
+ /**
632
+ * @ngdoc directive
633
+ * @name ui.bootstrap.carousel.directive:slide
634
+ * @restrict EA
635
+ *
636
+ * @description
637
+ * Creates a slide inside a {@link ui.bootstrap.carousel.directive:carousel carousel}. Must be placed as a child of a carousel element.
638
+ *
639
+ * @param {boolean=} active Model binding, whether or not this slide is currently active.
640
+ *
641
+ * @example
642
+ <example module="ui.bootstrap">
643
+ <file name="index.html">
644
+ <div ng-controller="CarouselDemoCtrl">
645
+ <carousel>
646
+ <slide ng-repeat="slide in slides" active="slide.active">
647
+ <img ng-src="{{slide.image}}" style="margin:auto;">
648
+ <div class="carousel-caption">
649
+ <h4>Slide {{$index}}</h4>
650
+ <p>{{slide.text}}</p>
651
+ </div>
652
+ </slide>
653
+ </carousel>
654
+ Interval, in milliseconds: <input type="number" ng-model="myInterval">
655
+ <br />Enter a negative number to stop the interval.
656
+ </div>
657
+ </file>
658
+ <file name="script.js">
659
+ function CarouselDemoCtrl($scope) {
660
+ $scope.myInterval = 5000;
661
+ }
662
+ </file>
663
+ <file name="demo.css">
664
+ .carousel-indicators {
665
+ top: auto;
666
+ bottom: 15px;
667
+ }
668
+ </file>
669
+ </example>
670
+ */
671
+
672
+ .directive('slide', function() {
673
+ return {
674
+ require: '^carousel',
675
+ restrict: 'EA',
676
+ transclude: true,
677
+ replace: true,
678
+ templateUrl: 'template/carousel/slide.html',
679
+ scope: {
680
+ active: '=?'
681
+ },
682
+ link: function (scope, element, attrs, carouselCtrl) {
683
+ carouselCtrl.addSlide(scope, element);
684
+ //when the scope is destroyed then remove the slide from the current slides array
685
+ scope.$on('$destroy', function() {
686
+ carouselCtrl.removeSlide(scope);
687
+ });
688
+
689
+ scope.$watch('active', function(active) {
690
+ if (active) {
691
+ carouselCtrl.select(scope);
692
+ }
693
+ });
694
+ }
695
+ };
696
+ });
697
+
698
+ angular.module('ui.bootstrap.dateparser', [])
699
+
700
+ .service('dateParser', ['$locale', 'orderByFilter', function($locale, orderByFilter) {
701
+
702
+ this.parsers = {};
703
+
704
+ var formatCodeToRegex = {
705
+ 'yyyy': {
706
+ regex: '\\d{4}',
707
+ apply: function(value) { this.year = +value; }
708
+ },
709
+ 'yy': {
710
+ regex: '\\d{2}',
711
+ apply: function(value) { this.year = +value + 2000; }
712
+ },
713
+ 'y': {
714
+ regex: '\\d{1,4}',
715
+ apply: function(value) { this.year = +value; }
716
+ },
717
+ 'MMMM': {
718
+ regex: $locale.DATETIME_FORMATS.MONTH.join('|'),
719
+ apply: function(value) { this.month = $locale.DATETIME_FORMATS.MONTH.indexOf(value); }
720
+ },
721
+ 'MMM': {
722
+ regex: $locale.DATETIME_FORMATS.SHORTMONTH.join('|'),
723
+ apply: function(value) { this.month = $locale.DATETIME_FORMATS.SHORTMONTH.indexOf(value); }
724
+ },
725
+ 'MM': {
726
+ regex: '0[1-9]|1[0-2]',
727
+ apply: function(value) { this.month = value - 1; }
728
+ },
729
+ 'M': {
730
+ regex: '[1-9]|1[0-2]',
731
+ apply: function(value) { this.month = value - 1; }
732
+ },
733
+ 'dd': {
734
+ regex: '[0-2][0-9]{1}|3[0-1]{1}',
735
+ apply: function(value) { this.date = +value; }
736
+ },
737
+ 'd': {
738
+ regex: '[1-2]?[0-9]{1}|3[0-1]{1}',
739
+ apply: function(value) { this.date = +value; }
740
+ },
741
+ 'EEEE': {
742
+ regex: $locale.DATETIME_FORMATS.DAY.join('|')
743
+ },
744
+ 'EEE': {
745
+ regex: $locale.DATETIME_FORMATS.SHORTDAY.join('|')
746
+ }
747
+ };
748
+
749
+ function createParser(format) {
750
+ var map = [], regex = format.split('');
751
+
752
+ angular.forEach(formatCodeToRegex, function(data, code) {
753
+ var index = format.indexOf(code);
754
+
755
+ if (index > -1) {
756
+ format = format.split('');
757
+
758
+ regex[index] = '(' + data.regex + ')';
759
+ format[index] = '$'; // Custom symbol to define consumed part of format
760
+ for (var i = index + 1, n = index + code.length; i < n; i++) {
761
+ regex[i] = '';
762
+ format[i] = '$';
763
+ }
764
+ format = format.join('');
765
+
766
+ map.push({ index: index, apply: data.apply });
767
+ }
768
+ });
769
+
770
+ return {
771
+ regex: new RegExp('^' + regex.join('') + '$'),
772
+ map: orderByFilter(map, 'index')
773
+ };
774
+ }
775
+
776
+ this.parse = function(input, format) {
777
+ if ( !angular.isString(input) || !format ) {
778
+ return input;
779
+ }
780
+
781
+ format = $locale.DATETIME_FORMATS[format] || format;
782
+
783
+ if ( !this.parsers[format] ) {
784
+ this.parsers[format] = createParser(format);
785
+ }
786
+
787
+ var parser = this.parsers[format],
788
+ regex = parser.regex,
789
+ map = parser.map,
790
+ results = input.match(regex);
791
+
792
+ if ( results && results.length ) {
793
+ var fields = { year: 1900, month: 0, date: 1, hours: 0 }, dt;
794
+
795
+ for( var i = 1, n = results.length; i < n; i++ ) {
796
+ var mapper = map[i-1];
797
+ if ( mapper.apply ) {
798
+ mapper.apply.call(fields, results[i]);
799
+ }
800
+ }
801
+
802
+ if ( isValid(fields.year, fields.month, fields.date) ) {
803
+ dt = new Date( fields.year, fields.month, fields.date, fields.hours);
804
+ }
805
+
806
+ return dt;
807
+ }
808
+ };
809
+
810
+ // Check if date is valid for specific month (and year for February).
811
+ // Month: 0 = Jan, 1 = Feb, etc
812
+ function isValid(year, month, date) {
813
+ if ( month === 1 && date > 28) {
814
+ return date === 29 && ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
815
+ }
816
+
817
+ if ( month === 3 || month === 5 || month === 8 || month === 10) {
818
+ return date < 31;
819
+ }
820
+
821
+ return true;
822
+ }
823
+ }]);
824
+
825
+ angular.module('ui.bootstrap.position', [])
826
+
827
+ /**
828
+ * A set of utility methods that can be use to retrieve position of DOM elements.
829
+ * It is meant to be used where we need to absolute-position DOM elements in
830
+ * relation to other, existing elements (this is the case for tooltips, popovers,
831
+ * typeahead suggestions etc.).
832
+ */
833
+ .factory('$position', ['$document', '$window', function ($document, $window) {
834
+
835
+ function getStyle(el, cssprop) {
836
+ if (el.currentStyle) { //IE
837
+ return el.currentStyle[cssprop];
838
+ } else if ($window.getComputedStyle) {
839
+ return $window.getComputedStyle(el)[cssprop];
840
+ }
841
+ // finally try and get inline style
842
+ return el.style[cssprop];
843
+ }
844
+
845
+ /**
846
+ * Checks if a given element is statically positioned
847
+ * @param element - raw DOM element
848
+ */
849
+ function isStaticPositioned(element) {
850
+ return (getStyle(element, 'position') || 'static' ) === 'static';
851
+ }
852
+
853
+ /**
854
+ * returns the closest, non-statically positioned parentOffset of a given element
855
+ * @param element
856
+ */
857
+ var parentOffsetEl = function (element) {
858
+ var docDomEl = $document[0];
859
+ var offsetParent = element.offsetParent || docDomEl;
860
+ while (offsetParent && offsetParent !== docDomEl && isStaticPositioned(offsetParent) ) {
861
+ offsetParent = offsetParent.offsetParent;
862
+ }
863
+ return offsetParent || docDomEl;
864
+ };
865
+
866
+ return {
867
+ /**
868
+ * Provides read-only equivalent of jQuery's position function:
869
+ * http://api.jquery.com/position/
870
+ */
871
+ position: function (element) {
872
+ var elBCR = this.offset(element);
873
+ var offsetParentBCR = { top: 0, left: 0 };
874
+ var offsetParentEl = parentOffsetEl(element[0]);
875
+ if (offsetParentEl != $document[0]) {
876
+ offsetParentBCR = this.offset(angular.element(offsetParentEl));
877
+ offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;
878
+ offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;
879
+ }
880
+
881
+ var boundingClientRect = element[0].getBoundingClientRect();
882
+ return {
883
+ width: boundingClientRect.width || element.prop('offsetWidth'),
884
+ height: boundingClientRect.height || element.prop('offsetHeight'),
885
+ top: elBCR.top - offsetParentBCR.top,
886
+ left: elBCR.left - offsetParentBCR.left
887
+ };
888
+ },
889
+
890
+ /**
891
+ * Provides read-only equivalent of jQuery's offset function:
892
+ * http://api.jquery.com/offset/
893
+ */
894
+ offset: function (element) {
895
+ var boundingClientRect = element[0].getBoundingClientRect();
896
+ return {
897
+ width: boundingClientRect.width || element.prop('offsetWidth'),
898
+ height: boundingClientRect.height || element.prop('offsetHeight'),
899
+ top: boundingClientRect.top + ($window.pageYOffset || $document[0].documentElement.scrollTop),
900
+ left: boundingClientRect.left + ($window.pageXOffset || $document[0].documentElement.scrollLeft)
901
+ };
902
+ },
903
+
904
+ /**
905
+ * Provides coordinates for the targetEl in relation to hostEl
906
+ */
907
+ positionElements: function (hostEl, targetEl, positionStr, appendToBody) {
908
+
909
+ var positionStrParts = positionStr.split('-');
910
+ var pos0 = positionStrParts[0], pos1 = positionStrParts[1] || 'center';
911
+
912
+ var hostElPos,
913
+ targetElWidth,
914
+ targetElHeight,
915
+ targetElPos;
916
+
917
+ hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);
918
+
919
+ targetElWidth = targetEl.prop('offsetWidth');
920
+ targetElHeight = targetEl.prop('offsetHeight');
921
+
922
+ var shiftWidth = {
923
+ center: function () {
924
+ return hostElPos.left + hostElPos.width / 2 - targetElWidth / 2;
925
+ },
926
+ left: function () {
927
+ return hostElPos.left;
928
+ },
929
+ right: function () {
930
+ return hostElPos.left + hostElPos.width;
931
+ }
932
+ };
933
+
934
+ var shiftHeight = {
935
+ center: function () {
936
+ return hostElPos.top + hostElPos.height / 2 - targetElHeight / 2;
937
+ },
938
+ top: function () {
939
+ return hostElPos.top;
940
+ },
941
+ bottom: function () {
942
+ return hostElPos.top + hostElPos.height;
943
+ }
944
+ };
945
+
946
+ switch (pos0) {
947
+ case 'right':
948
+ targetElPos = {
949
+ top: shiftHeight[pos1](),
950
+ left: shiftWidth[pos0]()
951
+ };
952
+ break;
953
+ case 'left':
954
+ targetElPos = {
955
+ top: shiftHeight[pos1](),
956
+ left: hostElPos.left - targetElWidth
957
+ };
958
+ break;
959
+ case 'bottom':
960
+ targetElPos = {
961
+ top: shiftHeight[pos0](),
962
+ left: shiftWidth[pos1]()
963
+ };
964
+ break;
965
+ default:
966
+ targetElPos = {
967
+ top: hostElPos.top - targetElHeight,
968
+ left: shiftWidth[pos1]()
969
+ };
970
+ break;
971
+ }
972
+
973
+ return targetElPos;
974
+ }
975
+ };
976
+ }]);
977
+
978
+ angular.module('ui.bootstrap.datepicker', ['ui.bootstrap.dateparser', 'ui.bootstrap.position'])
979
+
980
+ .constant('datepickerConfig', {
981
+ formatDay: 'dd',
982
+ formatMonth: 'MMMM',
983
+ formatYear: 'yyyy',
984
+ formatDayHeader: 'EEE',
985
+ formatDayTitle: 'MMMM yyyy',
986
+ formatMonthTitle: 'yyyy',
987
+ datepickerMode: 'day',
988
+ minMode: 'day',
989
+ maxMode: 'year',
990
+ showWeeks: true,
991
+ startingDay: 0,
992
+ yearRange: 20,
993
+ minDate: null,
994
+ maxDate: null
995
+ })
996
+
997
+ .controller('DatepickerController', ['$scope', '$attrs', '$parse', '$interpolate', '$timeout', '$log', 'dateFilter', 'datepickerConfig', function($scope, $attrs, $parse, $interpolate, $timeout, $log, dateFilter, datepickerConfig) {
998
+ var self = this,
999
+ ngModelCtrl = { $setViewValue: angular.noop }; // nullModelCtrl;
1000
+
1001
+ // Modes chain
1002
+ this.modes = ['day', 'month', 'year'];
1003
+
1004
+ // Configuration attributes
1005
+ angular.forEach(['formatDay', 'formatMonth', 'formatYear', 'formatDayHeader', 'formatDayTitle', 'formatMonthTitle',
1006
+ 'minMode', 'maxMode', 'showWeeks', 'startingDay', 'yearRange'], function( key, index ) {
1007
+ self[key] = angular.isDefined($attrs[key]) ? (index < 8 ? $interpolate($attrs[key])($scope.$parent) : $scope.$parent.$eval($attrs[key])) : datepickerConfig[key];
1008
+ });
1009
+
1010
+ // Watchable date attributes
1011
+ angular.forEach(['minDate', 'maxDate'], function( key ) {
1012
+ if ( $attrs[key] ) {
1013
+ $scope.$parent.$watch($parse($attrs[key]), function(value) {
1014
+ self[key] = value ? new Date(value) : null;
1015
+ self.refreshView();
1016
+ });
1017
+ } else {
1018
+ self[key] = datepickerConfig[key] ? new Date(datepickerConfig[key]) : null;
1019
+ }
1020
+ });
1021
+
1022
+ $scope.datepickerMode = $scope.datepickerMode || datepickerConfig.datepickerMode;
1023
+ $scope.uniqueId = 'datepicker-' + $scope.$id + '-' + Math.floor(Math.random() * 10000);
1024
+ this.activeDate = angular.isDefined($attrs.initDate) ? $scope.$parent.$eval($attrs.initDate) : new Date();
1025
+
1026
+ $scope.isActive = function(dateObject) {
1027
+ if (self.compare(dateObject.date, self.activeDate) === 0) {
1028
+ $scope.activeDateId = dateObject.uid;
1029
+ return true;
1030
+ }
1031
+ return false;
1032
+ };
1033
+
1034
+ this.init = function( ngModelCtrl_ ) {
1035
+ ngModelCtrl = ngModelCtrl_;
1036
+
1037
+ ngModelCtrl.$render = function() {
1038
+ self.render();
1039
+ };
1040
+ };
1041
+
1042
+ this.render = function() {
1043
+ if ( ngModelCtrl.$modelValue ) {
1044
+ var date = new Date( ngModelCtrl.$modelValue ),
1045
+ isValid = !isNaN(date);
1046
+
1047
+ if ( isValid ) {
1048
+ this.activeDate = date;
1049
+ } else {
1050
+ $log.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');
1051
+ }
1052
+ ngModelCtrl.$setValidity('date', isValid);
1053
+ }
1054
+ this.refreshView();
1055
+ };
1056
+
1057
+ this.refreshView = function() {
1058
+ if ( this.element ) {
1059
+ this._refreshView();
1060
+
1061
+ var date = ngModelCtrl.$modelValue ? new Date(ngModelCtrl.$modelValue) : null;
1062
+ ngModelCtrl.$setValidity('date-disabled', !date || (this.element && !this.isDisabled(date)));
1063
+ }
1064
+ };
1065
+
1066
+ this.createDateObject = function(date, format) {
1067
+ var model = ngModelCtrl.$modelValue ? new Date(ngModelCtrl.$modelValue) : null;
1068
+ return {
1069
+ date: date,
1070
+ label: dateFilter(date, format),
1071
+ selected: model && this.compare(date, model) === 0,
1072
+ disabled: this.isDisabled(date),
1073
+ current: this.compare(date, new Date()) === 0
1074
+ };
1075
+ };
1076
+
1077
+ this.isDisabled = function( date ) {
1078
+ return ((this.minDate && this.compare(date, this.minDate) < 0) || (this.maxDate && this.compare(date, this.maxDate) > 0) || ($attrs.dateDisabled && $scope.dateDisabled({date: date, mode: $scope.datepickerMode})));
1079
+ };
1080
+
1081
+ // Split array into smaller arrays
1082
+ this.split = function(arr, size) {
1083
+ var arrays = [];
1084
+ while (arr.length > 0) {
1085
+ arrays.push(arr.splice(0, size));
1086
+ }
1087
+ return arrays;
1088
+ };
1089
+
1090
+ $scope.select = function( date ) {
1091
+ if ( $scope.datepickerMode === self.minMode ) {
1092
+ var dt = ngModelCtrl.$modelValue ? new Date( ngModelCtrl.$modelValue ) : new Date(0, 0, 0, 0, 0, 0, 0);
1093
+ dt.setFullYear( date.getFullYear(), date.getMonth(), date.getDate() );
1094
+ ngModelCtrl.$setViewValue( dt );
1095
+ ngModelCtrl.$render();
1096
+ } else {
1097
+ self.activeDate = date;
1098
+ $scope.datepickerMode = self.modes[ self.modes.indexOf( $scope.datepickerMode ) - 1 ];
1099
+ }
1100
+ };
1101
+
1102
+ $scope.move = function( direction ) {
1103
+ var year = self.activeDate.getFullYear() + direction * (self.step.years || 0),
1104
+ month = self.activeDate.getMonth() + direction * (self.step.months || 0);
1105
+ self.activeDate.setFullYear(year, month, 1);
1106
+ self.refreshView();
1107
+ };
1108
+
1109
+ $scope.toggleMode = function( direction ) {
1110
+ direction = direction || 1;
1111
+
1112
+ if (($scope.datepickerMode === self.maxMode && direction === 1) || ($scope.datepickerMode === self.minMode && direction === -1)) {
1113
+ return;
1114
+ }
1115
+
1116
+ $scope.datepickerMode = self.modes[ self.modes.indexOf( $scope.datepickerMode ) + direction ];
1117
+ };
1118
+
1119
+ // Key event mapper
1120
+ $scope.keys = { 13:'enter', 32:'space', 33:'pageup', 34:'pagedown', 35:'end', 36:'home', 37:'left', 38:'up', 39:'right', 40:'down' };
1121
+
1122
+ var focusElement = function() {
1123
+ $timeout(function() {
1124
+ self.element[0].focus();
1125
+ }, 0 , false);
1126
+ };
1127
+
1128
+ // Listen for focus requests from popup directive
1129
+ $scope.$on('datepicker.focus', focusElement);
1130
+
1131
+ $scope.keydown = function( evt ) {
1132
+ var key = $scope.keys[evt.which];
1133
+
1134
+ if ( !key || evt.shiftKey || evt.altKey ) {
1135
+ return;
1136
+ }
1137
+
1138
+ evt.preventDefault();
1139
+ evt.stopPropagation();
1140
+
1141
+ if (key === 'enter' || key === 'space') {
1142
+ if ( self.isDisabled(self.activeDate)) {
1143
+ return; // do nothing
1144
+ }
1145
+ $scope.select(self.activeDate);
1146
+ focusElement();
1147
+ } else if (evt.ctrlKey && (key === 'up' || key === 'down')) {
1148
+ $scope.toggleMode(key === 'up' ? 1 : -1);
1149
+ focusElement();
1150
+ } else {
1151
+ self.handleKeyDown(key, evt);
1152
+ self.refreshView();
1153
+ }
1154
+ };
1155
+ }])
1156
+
1157
+ .directive( 'datepicker', function () {
1158
+ return {
1159
+ restrict: 'EA',
1160
+ replace: true,
1161
+ templateUrl: 'template/datepicker/datepicker.html',
1162
+ scope: {
1163
+ datepickerMode: '=?',
1164
+ dateDisabled: '&'
1165
+ },
1166
+ require: ['datepicker', '?^ngModel'],
1167
+ controller: 'DatepickerController',
1168
+ link: function(scope, element, attrs, ctrls) {
1169
+ var datepickerCtrl = ctrls[0], ngModelCtrl = ctrls[1];
1170
+
1171
+ if ( ngModelCtrl ) {
1172
+ datepickerCtrl.init( ngModelCtrl );
1173
+ }
1174
+ }
1175
+ };
1176
+ })
1177
+
1178
+ .directive('daypicker', ['dateFilter', function (dateFilter) {
1179
+ return {
1180
+ restrict: 'EA',
1181
+ replace: true,
1182
+ templateUrl: 'template/datepicker/day.html',
1183
+ require: '^datepicker',
1184
+ link: function(scope, element, attrs, ctrl) {
1185
+ scope.showWeeks = ctrl.showWeeks;
1186
+
1187
+ ctrl.step = { months: 1 };
1188
+ ctrl.element = element;
1189
+
1190
+ var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
1191
+ function getDaysInMonth( year, month ) {
1192
+ return ((month === 1) && (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0))) ? 29 : DAYS_IN_MONTH[month];
1193
+ }
1194
+
1195
+ function getDates(startDate, n) {
1196
+ var dates = new Array(n), current = new Date(startDate), i = 0;
1197
+ current.setHours(12); // Prevent repeated dates because of timezone bug
1198
+ while ( i < n ) {
1199
+ dates[i++] = new Date(current);
1200
+ current.setDate( current.getDate() + 1 );
1201
+ }
1202
+ return dates;
1203
+ }
1204
+
1205
+ ctrl._refreshView = function() {
1206
+ var year = ctrl.activeDate.getFullYear(),
1207
+ month = ctrl.activeDate.getMonth(),
1208
+ firstDayOfMonth = new Date(year, month, 1),
1209
+ difference = ctrl.startingDay - firstDayOfMonth.getDay(),
1210
+ numDisplayedFromPreviousMonth = (difference > 0) ? 7 - difference : - difference,
1211
+ firstDate = new Date(firstDayOfMonth);
1212
+
1213
+ if ( numDisplayedFromPreviousMonth > 0 ) {
1214
+ firstDate.setDate( - numDisplayedFromPreviousMonth + 1 );
1215
+ }
1216
+
1217
+ // 42 is the number of days on a six-month calendar
1218
+ var days = getDates(firstDate, 42);
1219
+ for (var i = 0; i < 42; i ++) {
1220
+ days[i] = angular.extend(ctrl.createDateObject(days[i], ctrl.formatDay), {
1221
+ secondary: days[i].getMonth() !== month,
1222
+ uid: scope.uniqueId + '-' + i
1223
+ });
1224
+ }
1225
+
1226
+ scope.labels = new Array(7);
1227
+ for (var j = 0; j < 7; j++) {
1228
+ scope.labels[j] = {
1229
+ abbr: dateFilter(days[j].date, ctrl.formatDayHeader),
1230
+ full: dateFilter(days[j].date, 'EEEE')
1231
+ };
1232
+ }
1233
+
1234
+ scope.title = dateFilter(ctrl.activeDate, ctrl.formatDayTitle);
1235
+ scope.rows = ctrl.split(days, 7);
1236
+
1237
+ if ( scope.showWeeks ) {
1238
+ scope.weekNumbers = [];
1239
+ var weekNumber = getISO8601WeekNumber( scope.rows[0][0].date ),
1240
+ numWeeks = scope.rows.length;
1241
+ while( scope.weekNumbers.push(weekNumber++) < numWeeks ) {}
1242
+ }
1243
+ };
1244
+
1245
+ ctrl.compare = function(date1, date2) {
1246
+ return (new Date( date1.getFullYear(), date1.getMonth(), date1.getDate() ) - new Date( date2.getFullYear(), date2.getMonth(), date2.getDate() ) );
1247
+ };
1248
+
1249
+ function getISO8601WeekNumber(date) {
1250
+ var checkDate = new Date(date);
1251
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); // Thursday
1252
+ var time = checkDate.getTime();
1253
+ checkDate.setMonth(0); // Compare with Jan 1
1254
+ checkDate.setDate(1);
1255
+ return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
1256
+ }
1257
+
1258
+ ctrl.handleKeyDown = function( key, evt ) {
1259
+ var date = ctrl.activeDate.getDate();
1260
+
1261
+ if (key === 'left') {
1262
+ date = date - 1; // up
1263
+ } else if (key === 'up') {
1264
+ date = date - 7; // down
1265
+ } else if (key === 'right') {
1266
+ date = date + 1; // down
1267
+ } else if (key === 'down') {
1268
+ date = date + 7;
1269
+ } else if (key === 'pageup' || key === 'pagedown') {
1270
+ var month = ctrl.activeDate.getMonth() + (key === 'pageup' ? - 1 : 1);
1271
+ ctrl.activeDate.setMonth(month, 1);
1272
+ date = Math.min(getDaysInMonth(ctrl.activeDate.getFullYear(), ctrl.activeDate.getMonth()), date);
1273
+ } else if (key === 'home') {
1274
+ date = 1;
1275
+ } else if (key === 'end') {
1276
+ date = getDaysInMonth(ctrl.activeDate.getFullYear(), ctrl.activeDate.getMonth());
1277
+ }
1278
+ ctrl.activeDate.setDate(date);
1279
+ };
1280
+
1281
+ ctrl.refreshView();
1282
+ }
1283
+ };
1284
+ }])
1285
+
1286
+ .directive('monthpicker', ['dateFilter', function (dateFilter) {
1287
+ return {
1288
+ restrict: 'EA',
1289
+ replace: true,
1290
+ templateUrl: 'template/datepicker/month.html',
1291
+ require: '^datepicker',
1292
+ link: function(scope, element, attrs, ctrl) {
1293
+ ctrl.step = { years: 1 };
1294
+ ctrl.element = element;
1295
+
1296
+ ctrl._refreshView = function() {
1297
+ var months = new Array(12),
1298
+ year = ctrl.activeDate.getFullYear();
1299
+
1300
+ for ( var i = 0; i < 12; i++ ) {
1301
+ months[i] = angular.extend(ctrl.createDateObject(new Date(year, i, 1), ctrl.formatMonth), {
1302
+ uid: scope.uniqueId + '-' + i
1303
+ });
1304
+ }
1305
+
1306
+ scope.title = dateFilter(ctrl.activeDate, ctrl.formatMonthTitle);
1307
+ scope.rows = ctrl.split(months, 3);
1308
+ };
1309
+
1310
+ ctrl.compare = function(date1, date2) {
1311
+ return new Date( date1.getFullYear(), date1.getMonth() ) - new Date( date2.getFullYear(), date2.getMonth() );
1312
+ };
1313
+
1314
+ ctrl.handleKeyDown = function( key, evt ) {
1315
+ var date = ctrl.activeDate.getMonth();
1316
+
1317
+ if (key === 'left') {
1318
+ date = date - 1; // up
1319
+ } else if (key === 'up') {
1320
+ date = date - 3; // down
1321
+ } else if (key === 'right') {
1322
+ date = date + 1; // down
1323
+ } else if (key === 'down') {
1324
+ date = date + 3;
1325
+ } else if (key === 'pageup' || key === 'pagedown') {
1326
+ var year = ctrl.activeDate.getFullYear() + (key === 'pageup' ? - 1 : 1);
1327
+ ctrl.activeDate.setFullYear(year);
1328
+ } else if (key === 'home') {
1329
+ date = 0;
1330
+ } else if (key === 'end') {
1331
+ date = 11;
1332
+ }
1333
+ ctrl.activeDate.setMonth(date);
1334
+ };
1335
+
1336
+ ctrl.refreshView();
1337
+ }
1338
+ };
1339
+ }])
1340
+
1341
+ .directive('yearpicker', ['dateFilter', function (dateFilter) {
1342
+ return {
1343
+ restrict: 'EA',
1344
+ replace: true,
1345
+ templateUrl: 'template/datepicker/year.html',
1346
+ require: '^datepicker',
1347
+ link: function(scope, element, attrs, ctrl) {
1348
+ var range = ctrl.yearRange;
1349
+
1350
+ ctrl.step = { years: range };
1351
+ ctrl.element = element;
1352
+
1353
+ function getStartingYear( year ) {
1354
+ return parseInt((year - 1) / range, 10) * range + 1;
1355
+ }
1356
+
1357
+ ctrl._refreshView = function() {
1358
+ var years = new Array(range);
1359
+
1360
+ for ( var i = 0, start = getStartingYear(ctrl.activeDate.getFullYear()); i < range; i++ ) {
1361
+ years[i] = angular.extend(ctrl.createDateObject(new Date(start + i, 0, 1), ctrl.formatYear), {
1362
+ uid: scope.uniqueId + '-' + i
1363
+ });
1364
+ }
1365
+
1366
+ scope.title = [years[0].label, years[range - 1].label].join(' - ');
1367
+ scope.rows = ctrl.split(years, 5);
1368
+ };
1369
+
1370
+ ctrl.compare = function(date1, date2) {
1371
+ return date1.getFullYear() - date2.getFullYear();
1372
+ };
1373
+
1374
+ ctrl.handleKeyDown = function( key, evt ) {
1375
+ var date = ctrl.activeDate.getFullYear();
1376
+
1377
+ if (key === 'left') {
1378
+ date = date - 1; // up
1379
+ } else if (key === 'up') {
1380
+ date = date - 5; // down
1381
+ } else if (key === 'right') {
1382
+ date = date + 1; // down
1383
+ } else if (key === 'down') {
1384
+ date = date + 5;
1385
+ } else if (key === 'pageup' || key === 'pagedown') {
1386
+ date += (key === 'pageup' ? - 1 : 1) * ctrl.step.years;
1387
+ } else if (key === 'home') {
1388
+ date = getStartingYear( ctrl.activeDate.getFullYear() );
1389
+ } else if (key === 'end') {
1390
+ date = getStartingYear( ctrl.activeDate.getFullYear() ) + range - 1;
1391
+ }
1392
+ ctrl.activeDate.setFullYear(date);
1393
+ };
1394
+
1395
+ ctrl.refreshView();
1396
+ }
1397
+ };
1398
+ }])
1399
+
1400
+ .constant('datepickerPopupConfig', {
1401
+ datepickerPopup: 'yyyy-MM-dd',
1402
+ currentText: 'Today',
1403
+ clearText: 'Clear',
1404
+ closeText: 'Done',
1405
+ closeOnDateSelection: true,
1406
+ appendToBody: false,
1407
+ showButtonBar: true
1408
+ })
1409
+
1410
+ .directive('datepickerPopup', ['$compile', '$parse', '$document', '$position', 'dateFilter', 'dateParser', 'datepickerPopupConfig',
1411
+ function ($compile, $parse, $document, $position, dateFilter, dateParser, datepickerPopupConfig) {
1412
+ return {
1413
+ restrict: 'EA',
1414
+ require: 'ngModel',
1415
+ scope: {
1416
+ isOpen: '=?',
1417
+ currentText: '@',
1418
+ clearText: '@',
1419
+ closeText: '@',
1420
+ dateDisabled: '&'
1421
+ },
1422
+ link: function(scope, element, attrs, ngModel) {
1423
+ var dateFormat,
1424
+ closeOnDateSelection = angular.isDefined(attrs.closeOnDateSelection) ? scope.$parent.$eval(attrs.closeOnDateSelection) : datepickerPopupConfig.closeOnDateSelection,
1425
+ appendToBody = angular.isDefined(attrs.datepickerAppendToBody) ? scope.$parent.$eval(attrs.datepickerAppendToBody) : datepickerPopupConfig.appendToBody;
1426
+
1427
+ scope.showButtonBar = angular.isDefined(attrs.showButtonBar) ? scope.$parent.$eval(attrs.showButtonBar) : datepickerPopupConfig.showButtonBar;
1428
+
1429
+ scope.getText = function( key ) {
1430
+ return scope[key + 'Text'] || datepickerPopupConfig[key + 'Text'];
1431
+ };
1432
+
1433
+ attrs.$observe('datepickerPopup', function(value) {
1434
+ dateFormat = value || datepickerPopupConfig.datepickerPopup;
1435
+ ngModel.$render();
1436
+ });
1437
+
1438
+ // popup element used to display calendar
1439
+ var popupEl = angular.element('<div datepicker-popup-wrap><div datepicker></div></div>');
1440
+ popupEl.attr({
1441
+ 'ng-model': 'date',
1442
+ 'ng-change': 'dateSelection()'
1443
+ });
1444
+
1445
+ function cameltoDash( string ){
1446
+ return string.replace(/([A-Z])/g, function($1) { return '-' + $1.toLowerCase(); });
1447
+ }
1448
+
1449
+ // datepicker element
1450
+ var datepickerEl = angular.element(popupEl.children()[0]);
1451
+ if ( attrs.datepickerOptions ) {
1452
+ angular.forEach(scope.$parent.$eval(attrs.datepickerOptions), function( value, option ) {
1453
+ datepickerEl.attr( cameltoDash(option), value );
1454
+ });
1455
+ }
1456
+
1457
+ scope.watchData = {};
1458
+ angular.forEach(['minDate', 'maxDate', 'datepickerMode'], function( key ) {
1459
+ if ( attrs[key] ) {
1460
+ var getAttribute = $parse(attrs[key]);
1461
+ scope.$parent.$watch(getAttribute, function(value){
1462
+ scope.watchData[key] = value;
1463
+ });
1464
+ datepickerEl.attr(cameltoDash(key), 'watchData.' + key);
1465
+
1466
+ // Propagate changes from datepicker to outside
1467
+ if ( key === 'datepickerMode' ) {
1468
+ var setAttribute = getAttribute.assign;
1469
+ scope.$watch('watchData.' + key, function(value, oldvalue) {
1470
+ if ( value !== oldvalue ) {
1471
+ setAttribute(scope.$parent, value);
1472
+ }
1473
+ });
1474
+ }
1475
+ }
1476
+ });
1477
+ if (attrs.dateDisabled) {
1478
+ datepickerEl.attr('date-disabled', 'dateDisabled({ date: date, mode: mode })');
1479
+ }
1480
+
1481
+ function parseDate(viewValue) {
1482
+ if (!viewValue) {
1483
+ ngModel.$setValidity('date', true);
1484
+ return null;
1485
+ } else if (angular.isDate(viewValue) && !isNaN(viewValue)) {
1486
+ ngModel.$setValidity('date', true);
1487
+ return viewValue;
1488
+ } else if (angular.isString(viewValue)) {
1489
+ var date = dateParser.parse(viewValue, dateFormat) || new Date(viewValue);
1490
+ if (isNaN(date)) {
1491
+ ngModel.$setValidity('date', false);
1492
+ return undefined;
1493
+ } else {
1494
+ ngModel.$setValidity('date', true);
1495
+ return date;
1496
+ }
1497
+ } else {
1498
+ ngModel.$setValidity('date', false);
1499
+ return undefined;
1500
+ }
1501
+ }
1502
+ ngModel.$parsers.unshift(parseDate);
1503
+
1504
+ // Inner change
1505
+ scope.dateSelection = function(dt) {
1506
+ if (angular.isDefined(dt)) {
1507
+ scope.date = dt;
1508
+ }
1509
+ ngModel.$setViewValue(scope.date);
1510
+ ngModel.$render();
1511
+
1512
+ if ( closeOnDateSelection ) {
1513
+ scope.isOpen = false;
1514
+ element[0].focus();
1515
+ }
1516
+ };
1517
+
1518
+ element.bind('input change keyup', function() {
1519
+ scope.$apply(function() {
1520
+ scope.date = ngModel.$modelValue;
1521
+ });
1522
+ });
1523
+
1524
+ // Outter change
1525
+ ngModel.$render = function() {
1526
+ var date = ngModel.$viewValue ? dateFilter(ngModel.$viewValue, dateFormat) : '';
1527
+ element.val(date);
1528
+ scope.date = parseDate( ngModel.$modelValue );
1529
+ };
1530
+
1531
+ var documentClickBind = function(event) {
1532
+ if (scope.isOpen && event.target !== element[0]) {
1533
+ scope.$apply(function() {
1534
+ scope.isOpen = false;
1535
+ });
1536
+ }
1537
+ };
1538
+
1539
+ var keydown = function(evt, noApply) {
1540
+ scope.keydown(evt);
1541
+ };
1542
+ element.bind('keydown', keydown);
1543
+
1544
+ scope.keydown = function(evt) {
1545
+ if (evt.which === 27) {
1546
+ evt.preventDefault();
1547
+ evt.stopPropagation();
1548
+ scope.close();
1549
+ } else if (evt.which === 40 && !scope.isOpen) {
1550
+ scope.isOpen = true;
1551
+ }
1552
+ };
1553
+
1554
+ scope.$watch('isOpen', function(value) {
1555
+ if (value) {
1556
+ scope.$broadcast('datepicker.focus');
1557
+ scope.position = appendToBody ? $position.offset(element) : $position.position(element);
1558
+ scope.position.top = scope.position.top + element.prop('offsetHeight');
1559
+
1560
+ $document.bind('click', documentClickBind);
1561
+ } else {
1562
+ $document.unbind('click', documentClickBind);
1563
+ }
1564
+ });
1565
+
1566
+ scope.select = function( date ) {
1567
+ if (date === 'today') {
1568
+ var today = new Date();
1569
+ if (angular.isDate(ngModel.$modelValue)) {
1570
+ date = new Date(ngModel.$modelValue);
1571
+ date.setFullYear(today.getFullYear(), today.getMonth(), today.getDate());
1572
+ } else {
1573
+ date = new Date(today.setHours(0, 0, 0, 0));
1574
+ }
1575
+ }
1576
+ scope.dateSelection( date );
1577
+ };
1578
+
1579
+ scope.close = function() {
1580
+ scope.isOpen = false;
1581
+ element[0].focus();
1582
+ };
1583
+
1584
+ var $popup = $compile(popupEl)(scope);
1585
+ // Prevent jQuery cache memory leak (template is now redundant after linking)
1586
+ popupEl.remove();
1587
+
1588
+ if ( appendToBody ) {
1589
+ $document.find('body').append($popup);
1590
+ } else {
1591
+ element.after($popup);
1592
+ }
1593
+
1594
+ scope.$on('$destroy', function() {
1595
+ $popup.remove();
1596
+ element.unbind('keydown', keydown);
1597
+ $document.unbind('click', documentClickBind);
1598
+ });
1599
+ }
1600
+ };
1601
+ }])
1602
+
1603
+ .directive('datepickerPopupWrap', function() {
1604
+ return {
1605
+ restrict:'EA',
1606
+ replace: true,
1607
+ transclude: true,
1608
+ templateUrl: 'template/datepicker/popup.html',
1609
+ link:function (scope, element, attrs) {
1610
+ element.bind('click', function(event) {
1611
+ event.preventDefault();
1612
+ event.stopPropagation();
1613
+ });
1614
+ }
1615
+ };
1616
+ });
1617
+
1618
+ angular.module('ui.bootstrap.dropdown', [])
1619
+
1620
+ .constant('dropdownConfig', {
1621
+ openClass: 'open'
1622
+ })
1623
+
1624
+ .service('dropdownService', ['$document', function($document) {
1625
+ var openScope = null;
1626
+
1627
+ this.open = function( dropdownScope ) {
1628
+ if ( !openScope ) {
1629
+ $document.bind('click', closeDropdown);
1630
+ $document.bind('keydown', escapeKeyBind);
1631
+ }
1632
+
1633
+ if ( openScope && openScope !== dropdownScope ) {
1634
+ openScope.isOpen = false;
1635
+ }
1636
+
1637
+ openScope = dropdownScope;
1638
+ };
1639
+
1640
+ this.close = function( dropdownScope ) {
1641
+ if ( openScope === dropdownScope ) {
1642
+ openScope = null;
1643
+ $document.unbind('click', closeDropdown);
1644
+ $document.unbind('keydown', escapeKeyBind);
1645
+ }
1646
+ };
1647
+
1648
+ var closeDropdown = function( evt ) {
1649
+ var toggleElement = openScope.getToggleElement();
1650
+ if ( evt && toggleElement && toggleElement[0].contains(evt.target) ) {
1651
+ return;
1652
+ }
1653
+
1654
+ openScope.$apply(function() {
1655
+ openScope.isOpen = false;
1656
+ });
1657
+ };
1658
+
1659
+ var escapeKeyBind = function( evt ) {
1660
+ if ( evt.which === 27 ) {
1661
+ openScope.focusToggleElement();
1662
+ closeDropdown();
1663
+ }
1664
+ };
1665
+ }])
1666
+
1667
+ .controller('DropdownController', ['$scope', '$attrs', '$parse', 'dropdownConfig', 'dropdownService', '$animate', function($scope, $attrs, $parse, dropdownConfig, dropdownService, $animate) {
1668
+ var self = this,
1669
+ scope = $scope.$new(), // create a child scope so we are not polluting original one
1670
+ openClass = dropdownConfig.openClass,
1671
+ getIsOpen,
1672
+ setIsOpen = angular.noop,
1673
+ toggleInvoker = $attrs.onToggle ? $parse($attrs.onToggle) : angular.noop;
1674
+
1675
+ this.init = function( element ) {
1676
+ self.$element = element;
1677
+
1678
+ if ( $attrs.isOpen ) {
1679
+ getIsOpen = $parse($attrs.isOpen);
1680
+ setIsOpen = getIsOpen.assign;
1681
+
1682
+ $scope.$watch(getIsOpen, function(value) {
1683
+ scope.isOpen = !!value;
1684
+ });
1685
+ }
1686
+ };
1687
+
1688
+ this.toggle = function( open ) {
1689
+ return scope.isOpen = arguments.length ? !!open : !scope.isOpen;
1690
+ };
1691
+
1692
+ // Allow other directives to watch status
1693
+ this.isOpen = function() {
1694
+ return scope.isOpen;
1695
+ };
1696
+
1697
+ scope.getToggleElement = function() {
1698
+ return self.toggleElement;
1699
+ };
1700
+
1701
+ scope.focusToggleElement = function() {
1702
+ if ( self.toggleElement ) {
1703
+ self.toggleElement[0].focus();
1704
+ }
1705
+ };
1706
+
1707
+ scope.$watch('isOpen', function( isOpen, wasOpen ) {
1708
+ $animate[isOpen ? 'addClass' : 'removeClass'](self.$element, openClass);
1709
+
1710
+ if ( isOpen ) {
1711
+ scope.focusToggleElement();
1712
+ dropdownService.open( scope );
1713
+ } else {
1714
+ dropdownService.close( scope );
1715
+ }
1716
+
1717
+ setIsOpen($scope, isOpen);
1718
+ if (angular.isDefined(isOpen) && isOpen !== wasOpen) {
1719
+ toggleInvoker($scope, { open: !!isOpen });
1720
+ }
1721
+ });
1722
+
1723
+ $scope.$on('$locationChangeSuccess', function() {
1724
+ scope.isOpen = false;
1725
+ });
1726
+
1727
+ $scope.$on('$destroy', function() {
1728
+ scope.$destroy();
1729
+ });
1730
+ }])
1731
+
1732
+ .directive('dropdown', function() {
1733
+ return {
1734
+ restrict: 'CA',
1735
+ controller: 'DropdownController',
1736
+ link: function(scope, element, attrs, dropdownCtrl) {
1737
+ dropdownCtrl.init( element );
1738
+ }
1739
+ };
1740
+ })
1741
+
1742
+ .directive('dropdownToggle', function() {
1743
+ return {
1744
+ restrict: 'CA',
1745
+ require: '?^dropdown',
1746
+ link: function(scope, element, attrs, dropdownCtrl) {
1747
+ if ( !dropdownCtrl ) {
1748
+ return;
1749
+ }
1750
+
1751
+ dropdownCtrl.toggleElement = element;
1752
+
1753
+ var toggleDropdown = function(event) {
1754
+ event.preventDefault();
1755
+
1756
+ if ( !element.hasClass('disabled') && !attrs.disabled ) {
1757
+ scope.$apply(function() {
1758
+ dropdownCtrl.toggle();
1759
+ });
1760
+ }
1761
+ };
1762
+
1763
+ element.bind('click', toggleDropdown);
1764
+
1765
+ // WAI-ARIA
1766
+ element.attr({ 'aria-haspopup': true, 'aria-expanded': false });
1767
+ scope.$watch(dropdownCtrl.isOpen, function( isOpen ) {
1768
+ element.attr('aria-expanded', !!isOpen);
1769
+ });
1770
+
1771
+ scope.$on('$destroy', function() {
1772
+ element.unbind('click', toggleDropdown);
1773
+ });
1774
+ }
1775
+ };
1776
+ });
1777
+
1778
+ angular.module('ui.bootstrap.modal', ['ui.bootstrap.transition'])
1779
+
1780
+ /**
1781
+ * A helper, internal data structure that acts as a map but also allows getting / removing
1782
+ * elements in the LIFO order
1783
+ */
1784
+ .factory('$$stackedMap', function () {
1785
+ return {
1786
+ createNew: function () {
1787
+ var stack = [];
1788
+
1789
+ return {
1790
+ add: function (key, value) {
1791
+ stack.push({
1792
+ key: key,
1793
+ value: value
1794
+ });
1795
+ },
1796
+ get: function (key) {
1797
+ for (var i = 0; i < stack.length; i++) {
1798
+ if (key == stack[i].key) {
1799
+ return stack[i];
1800
+ }
1801
+ }
1802
+ },
1803
+ keys: function() {
1804
+ var keys = [];
1805
+ for (var i = 0; i < stack.length; i++) {
1806
+ keys.push(stack[i].key);
1807
+ }
1808
+ return keys;
1809
+ },
1810
+ top: function () {
1811
+ return stack[stack.length - 1];
1812
+ },
1813
+ remove: function (key) {
1814
+ var idx = -1;
1815
+ for (var i = 0; i < stack.length; i++) {
1816
+ if (key == stack[i].key) {
1817
+ idx = i;
1818
+ break;
1819
+ }
1820
+ }
1821
+ return stack.splice(idx, 1)[0];
1822
+ },
1823
+ removeTop: function () {
1824
+ return stack.splice(stack.length - 1, 1)[0];
1825
+ },
1826
+ length: function () {
1827
+ return stack.length;
1828
+ }
1829
+ };
1830
+ }
1831
+ };
1832
+ })
1833
+
1834
+ /**
1835
+ * A helper directive for the $modal service. It creates a backdrop element.
1836
+ */
1837
+ .directive('modalBackdrop', ['$timeout', function ($timeout) {
1838
+ return {
1839
+ restrict: 'EA',
1840
+ replace: true,
1841
+ templateUrl: 'template/modal/backdrop.html',
1842
+ link: function (scope, element, attrs) {
1843
+ scope.backdropClass = attrs.backdropClass || '';
1844
+
1845
+ scope.animate = false;
1846
+
1847
+ //trigger CSS transitions
1848
+ $timeout(function () {
1849
+ scope.animate = true;
1850
+ });
1851
+ }
1852
+ };
1853
+ }])
1854
+
1855
+ .directive('modalWindow', ['$modalStack', '$timeout', function ($modalStack, $timeout) {
1856
+ return {
1857
+ restrict: 'EA',
1858
+ scope: {
1859
+ index: '@',
1860
+ animate: '='
1861
+ },
1862
+ replace: true,
1863
+ transclude: true,
1864
+ templateUrl: function(tElement, tAttrs) {
1865
+ return tAttrs.templateUrl || 'template/modal/window.html';
1866
+ },
1867
+ link: function (scope, element, attrs) {
1868
+ element.addClass(attrs.windowClass || '');
1869
+ scope.size = attrs.size;
1870
+
1871
+ $timeout(function () {
1872
+ // trigger CSS transitions
1873
+ scope.animate = true;
1874
+
1875
+ /**
1876
+ * Auto-focusing of a freshly-opened modal element causes any child elements
1877
+ * with the autofocus attribute to loose focus. This is an issue on touch
1878
+ * based devices which will show and then hide the onscreen keyboard.
1879
+ * Attempts to refocus the autofocus element via JavaScript will not reopen
1880
+ * the onscreen keyboard. Fixed by updated the focusing logic to only autofocus
1881
+ * the modal element if the modal does not contain an autofocus element.
1882
+ */
1883
+ if (!element[0].querySelectorAll('[autofocus]').length) {
1884
+ element[0].focus();
1885
+ }
1886
+ });
1887
+
1888
+ scope.close = function (evt) {
1889
+ var modal = $modalStack.getTop();
1890
+ if (modal && modal.value.backdrop && modal.value.backdrop != 'static' && (evt.target === evt.currentTarget)) {
1891
+ evt.preventDefault();
1892
+ evt.stopPropagation();
1893
+ $modalStack.dismiss(modal.key, 'backdrop click');
1894
+ }
1895
+ };
1896
+ }
1897
+ };
1898
+ }])
1899
+
1900
+ .directive('modalTransclude', function () {
1901
+ return {
1902
+ link: function($scope, $element, $attrs, controller, $transclude) {
1903
+ $transclude($scope.$parent, function(clone) {
1904
+ $element.empty();
1905
+ $element.append(clone);
1906
+ });
1907
+ }
1908
+ };
1909
+ })
1910
+
1911
+ .factory('$modalStack', ['$transition', '$timeout', '$document', '$compile', '$rootScope', '$$stackedMap',
1912
+ function ($transition, $timeout, $document, $compile, $rootScope, $$stackedMap) {
1913
+
1914
+ var OPENED_MODAL_CLASS = 'modal-open';
1915
+
1916
+ var backdropDomEl, backdropScope;
1917
+ var openedWindows = $$stackedMap.createNew();
1918
+ var $modalStack = {};
1919
+
1920
+ function backdropIndex() {
1921
+ var topBackdropIndex = -1;
1922
+ var opened = openedWindows.keys();
1923
+ for (var i = 0; i < opened.length; i++) {
1924
+ if (openedWindows.get(opened[i]).value.backdrop) {
1925
+ topBackdropIndex = i;
1926
+ }
1927
+ }
1928
+ return topBackdropIndex;
1929
+ }
1930
+
1931
+ $rootScope.$watch(backdropIndex, function(newBackdropIndex){
1932
+ if (backdropScope) {
1933
+ backdropScope.index = newBackdropIndex;
1934
+ }
1935
+ });
1936
+
1937
+ function removeModalWindow(modalInstance) {
1938
+
1939
+ var body = $document.find('body').eq(0);
1940
+ var modalWindow = openedWindows.get(modalInstance).value;
1941
+
1942
+ //clean up the stack
1943
+ openedWindows.remove(modalInstance);
1944
+
1945
+ //remove window DOM element
1946
+ removeAfterAnimate(modalWindow.modalDomEl, modalWindow.modalScope, 300, function() {
1947
+ modalWindow.modalScope.$destroy();
1948
+ body.toggleClass(OPENED_MODAL_CLASS, openedWindows.length() > 0);
1949
+ checkRemoveBackdrop();
1950
+ });
1951
+ }
1952
+
1953
+ function checkRemoveBackdrop() {
1954
+ //remove backdrop if no longer needed
1955
+ if (backdropDomEl && backdropIndex() == -1) {
1956
+ var backdropScopeRef = backdropScope;
1957
+ removeAfterAnimate(backdropDomEl, backdropScope, 150, function () {
1958
+ backdropScopeRef.$destroy();
1959
+ backdropScopeRef = null;
1960
+ });
1961
+ backdropDomEl = undefined;
1962
+ backdropScope = undefined;
1963
+ }
1964
+ }
1965
+
1966
+ function removeAfterAnimate(domEl, scope, emulateTime, done) {
1967
+ // Closing animation
1968
+ scope.animate = false;
1969
+
1970
+ var transitionEndEventName = $transition.transitionEndEventName;
1971
+ if (transitionEndEventName) {
1972
+ // transition out
1973
+ var timeout = $timeout(afterAnimating, emulateTime);
1974
+
1975
+ domEl.bind(transitionEndEventName, function () {
1976
+ $timeout.cancel(timeout);
1977
+ afterAnimating();
1978
+ scope.$apply();
1979
+ });
1980
+ } else {
1981
+ // Ensure this call is async
1982
+ $timeout(afterAnimating);
1983
+ }
1984
+
1985
+ function afterAnimating() {
1986
+ if (afterAnimating.done) {
1987
+ return;
1988
+ }
1989
+ afterAnimating.done = true;
1990
+
1991
+ domEl.remove();
1992
+ if (done) {
1993
+ done();
1994
+ }
1995
+ }
1996
+ }
1997
+
1998
+ $document.bind('keydown', function (evt) {
1999
+ var modal;
2000
+
2001
+ if (evt.which === 27) {
2002
+ modal = openedWindows.top();
2003
+ if (modal && modal.value.keyboard) {
2004
+ evt.preventDefault();
2005
+ $rootScope.$apply(function () {
2006
+ $modalStack.dismiss(modal.key, 'escape key press');
2007
+ });
2008
+ }
2009
+ }
2010
+ });
2011
+
2012
+ $modalStack.open = function (modalInstance, modal) {
2013
+
2014
+ openedWindows.add(modalInstance, {
2015
+ deferred: modal.deferred,
2016
+ modalScope: modal.scope,
2017
+ backdrop: modal.backdrop,
2018
+ keyboard: modal.keyboard
2019
+ });
2020
+
2021
+ var body = $document.find('body').eq(0),
2022
+ currBackdropIndex = backdropIndex();
2023
+
2024
+ if (currBackdropIndex >= 0 && !backdropDomEl) {
2025
+ backdropScope = $rootScope.$new(true);
2026
+ backdropScope.index = currBackdropIndex;
2027
+ var angularBackgroundDomEl = angular.element('<div modal-backdrop></div>');
2028
+ angularBackgroundDomEl.attr('backdrop-class', modal.backdropClass);
2029
+ backdropDomEl = $compile(angularBackgroundDomEl)(backdropScope);
2030
+ body.append(backdropDomEl);
2031
+ }
2032
+
2033
+ var angularDomEl = angular.element('<div modal-window></div>');
2034
+ angularDomEl.attr({
2035
+ 'template-url': modal.windowTemplateUrl,
2036
+ 'window-class': modal.windowClass,
2037
+ 'size': modal.size,
2038
+ 'index': openedWindows.length() - 1,
2039
+ 'animate': 'animate'
2040
+ }).html(modal.content);
2041
+
2042
+ var modalDomEl = $compile(angularDomEl)(modal.scope);
2043
+ openedWindows.top().value.modalDomEl = modalDomEl;
2044
+ body.append(modalDomEl);
2045
+ body.addClass(OPENED_MODAL_CLASS);
2046
+ };
2047
+
2048
+ $modalStack.close = function (modalInstance, result) {
2049
+ var modalWindow = openedWindows.get(modalInstance);
2050
+ if (modalWindow) {
2051
+ modalWindow.value.deferred.resolve(result);
2052
+ removeModalWindow(modalInstance);
2053
+ }
2054
+ };
2055
+
2056
+ $modalStack.dismiss = function (modalInstance, reason) {
2057
+ var modalWindow = openedWindows.get(modalInstance);
2058
+ if (modalWindow) {
2059
+ modalWindow.value.deferred.reject(reason);
2060
+ removeModalWindow(modalInstance);
2061
+ }
2062
+ };
2063
+
2064
+ $modalStack.dismissAll = function (reason) {
2065
+ var topModal = this.getTop();
2066
+ while (topModal) {
2067
+ this.dismiss(topModal.key, reason);
2068
+ topModal = this.getTop();
2069
+ }
2070
+ };
2071
+
2072
+ $modalStack.getTop = function () {
2073
+ return openedWindows.top();
2074
+ };
2075
+
2076
+ return $modalStack;
2077
+ }])
2078
+
2079
+ .provider('$modal', function () {
2080
+
2081
+ var $modalProvider = {
2082
+ options: {
2083
+ backdrop: true, //can be also false or 'static'
2084
+ keyboard: true
2085
+ },
2086
+ $get: ['$injector', '$rootScope', '$q', '$http', '$templateCache', '$controller', '$modalStack',
2087
+ function ($injector, $rootScope, $q, $http, $templateCache, $controller, $modalStack) {
2088
+
2089
+ var $modal = {};
2090
+
2091
+ function getTemplatePromise(options) {
2092
+ return options.template ? $q.when(options.template) :
2093
+ $http.get(angular.isFunction(options.templateUrl) ? (options.templateUrl)() : options.templateUrl,
2094
+ {cache: $templateCache}).then(function (result) {
2095
+ return result.data;
2096
+ });
2097
+ }
2098
+
2099
+ function getResolvePromises(resolves) {
2100
+ var promisesArr = [];
2101
+ angular.forEach(resolves, function (value) {
2102
+ if (angular.isFunction(value) || angular.isArray(value)) {
2103
+ promisesArr.push($q.when($injector.invoke(value)));
2104
+ }
2105
+ });
2106
+ return promisesArr;
2107
+ }
2108
+
2109
+ $modal.open = function (modalOptions) {
2110
+
2111
+ var modalResultDeferred = $q.defer();
2112
+ var modalOpenedDeferred = $q.defer();
2113
+
2114
+ //prepare an instance of a modal to be injected into controllers and returned to a caller
2115
+ var modalInstance = {
2116
+ result: modalResultDeferred.promise,
2117
+ opened: modalOpenedDeferred.promise,
2118
+ close: function (result) {
2119
+ $modalStack.close(modalInstance, result);
2120
+ },
2121
+ dismiss: function (reason) {
2122
+ $modalStack.dismiss(modalInstance, reason);
2123
+ }
2124
+ };
2125
+
2126
+ //merge and clean up options
2127
+ modalOptions = angular.extend({}, $modalProvider.options, modalOptions);
2128
+ modalOptions.resolve = modalOptions.resolve || {};
2129
+
2130
+ //verify options
2131
+ if (!modalOptions.template && !modalOptions.templateUrl) {
2132
+ throw new Error('One of template or templateUrl options is required.');
2133
+ }
2134
+
2135
+ var templateAndResolvePromise =
2136
+ $q.all([getTemplatePromise(modalOptions)].concat(getResolvePromises(modalOptions.resolve)));
2137
+
2138
+
2139
+ templateAndResolvePromise.then(function resolveSuccess(tplAndVars) {
2140
+
2141
+ var modalScope = (modalOptions.scope || $rootScope).$new();
2142
+ modalScope.$close = modalInstance.close;
2143
+ modalScope.$dismiss = modalInstance.dismiss;
2144
+
2145
+ var ctrlInstance, ctrlLocals = {};
2146
+ var resolveIter = 1;
2147
+
2148
+ //controllers
2149
+ if (modalOptions.controller) {
2150
+ ctrlLocals.$scope = modalScope;
2151
+ ctrlLocals.$modalInstance = modalInstance;
2152
+ angular.forEach(modalOptions.resolve, function (value, key) {
2153
+ ctrlLocals[key] = tplAndVars[resolveIter++];
2154
+ });
2155
+
2156
+ ctrlInstance = $controller(modalOptions.controller, ctrlLocals);
2157
+ if (modalOptions.controllerAs) {
2158
+ modalScope[modalOptions.controllerAs] = ctrlInstance;
2159
+ }
2160
+ }
2161
+
2162
+ $modalStack.open(modalInstance, {
2163
+ scope: modalScope,
2164
+ deferred: modalResultDeferred,
2165
+ content: tplAndVars[0],
2166
+ backdrop: modalOptions.backdrop,
2167
+ keyboard: modalOptions.keyboard,
2168
+ backdropClass: modalOptions.backdropClass,
2169
+ windowClass: modalOptions.windowClass,
2170
+ windowTemplateUrl: modalOptions.windowTemplateUrl,
2171
+ size: modalOptions.size
2172
+ });
2173
+
2174
+ }, function resolveError(reason) {
2175
+ modalResultDeferred.reject(reason);
2176
+ });
2177
+
2178
+ templateAndResolvePromise.then(function () {
2179
+ modalOpenedDeferred.resolve(true);
2180
+ }, function () {
2181
+ modalOpenedDeferred.reject(false);
2182
+ });
2183
+
2184
+ return modalInstance;
2185
+ };
2186
+
2187
+ return $modal;
2188
+ }]
2189
+ };
2190
+
2191
+ return $modalProvider;
2192
+ });
2193
+
2194
+ angular.module('ui.bootstrap.pagination', [])
2195
+
2196
+ .controller('PaginationController', ['$scope', '$attrs', '$parse', function ($scope, $attrs, $parse) {
2197
+ var self = this,
2198
+ ngModelCtrl = { $setViewValue: angular.noop }, // nullModelCtrl
2199
+ setNumPages = $attrs.numPages ? $parse($attrs.numPages).assign : angular.noop;
2200
+
2201
+ this.init = function(ngModelCtrl_, config) {
2202
+ ngModelCtrl = ngModelCtrl_;
2203
+ this.config = config;
2204
+
2205
+ ngModelCtrl.$render = function() {
2206
+ self.render();
2207
+ };
2208
+
2209
+ if ($attrs.itemsPerPage) {
2210
+ $scope.$parent.$watch($parse($attrs.itemsPerPage), function(value) {
2211
+ self.itemsPerPage = parseInt(value, 10);
2212
+ $scope.totalPages = self.calculateTotalPages();
2213
+ });
2214
+ } else {
2215
+ this.itemsPerPage = config.itemsPerPage;
2216
+ }
2217
+ };
2218
+
2219
+ this.calculateTotalPages = function() {
2220
+ var totalPages = this.itemsPerPage < 1 ? 1 : Math.ceil($scope.totalItems / this.itemsPerPage);
2221
+ return Math.max(totalPages || 0, 1);
2222
+ };
2223
+
2224
+ this.render = function() {
2225
+ $scope.page = parseInt(ngModelCtrl.$viewValue, 10) || 1;
2226
+ };
2227
+
2228
+ $scope.selectPage = function(page) {
2229
+ if ( $scope.page !== page && page > 0 && page <= $scope.totalPages) {
2230
+ ngModelCtrl.$setViewValue(page);
2231
+ ngModelCtrl.$render();
2232
+ }
2233
+ };
2234
+
2235
+ $scope.getText = function( key ) {
2236
+ return $scope[key + 'Text'] || self.config[key + 'Text'];
2237
+ };
2238
+ $scope.noPrevious = function() {
2239
+ return $scope.page === 1;
2240
+ };
2241
+ $scope.noNext = function() {
2242
+ return $scope.page === $scope.totalPages;
2243
+ };
2244
+
2245
+ $scope.$watch('totalItems', function() {
2246
+ $scope.totalPages = self.calculateTotalPages();
2247
+ });
2248
+
2249
+ $scope.$watch('totalPages', function(value) {
2250
+ setNumPages($scope.$parent, value); // Readonly variable
2251
+
2252
+ if ( $scope.page > value ) {
2253
+ $scope.selectPage(value);
2254
+ } else {
2255
+ ngModelCtrl.$render();
2256
+ }
2257
+ });
2258
+ }])
2259
+
2260
+ .constant('paginationConfig', {
2261
+ itemsPerPage: 10,
2262
+ boundaryLinks: false,
2263
+ directionLinks: true,
2264
+ firstText: 'First',
2265
+ previousText: 'Previous',
2266
+ nextText: 'Next',
2267
+ lastText: 'Last',
2268
+ rotate: true
2269
+ })
2270
+
2271
+ .directive('pagination', ['$parse', 'paginationConfig', function($parse, paginationConfig) {
2272
+ return {
2273
+ restrict: 'EA',
2274
+ scope: {
2275
+ totalItems: '=',
2276
+ firstText: '@',
2277
+ previousText: '@',
2278
+ nextText: '@',
2279
+ lastText: '@'
2280
+ },
2281
+ require: ['pagination', '?ngModel'],
2282
+ controller: 'PaginationController',
2283
+ templateUrl: 'template/pagination/pagination.html',
2284
+ replace: true,
2285
+ link: function(scope, element, attrs, ctrls) {
2286
+ var paginationCtrl = ctrls[0], ngModelCtrl = ctrls[1];
2287
+
2288
+ if (!ngModelCtrl) {
2289
+ return; // do nothing if no ng-model
2290
+ }
2291
+
2292
+ // Setup configuration parameters
2293
+ var maxSize = angular.isDefined(attrs.maxSize) ? scope.$parent.$eval(attrs.maxSize) : paginationConfig.maxSize,
2294
+ rotate = angular.isDefined(attrs.rotate) ? scope.$parent.$eval(attrs.rotate) : paginationConfig.rotate;
2295
+ scope.boundaryLinks = angular.isDefined(attrs.boundaryLinks) ? scope.$parent.$eval(attrs.boundaryLinks) : paginationConfig.boundaryLinks;
2296
+ scope.directionLinks = angular.isDefined(attrs.directionLinks) ? scope.$parent.$eval(attrs.directionLinks) : paginationConfig.directionLinks;
2297
+
2298
+ paginationCtrl.init(ngModelCtrl, paginationConfig);
2299
+
2300
+ if (attrs.maxSize) {
2301
+ scope.$parent.$watch($parse(attrs.maxSize), function(value) {
2302
+ maxSize = parseInt(value, 10);
2303
+ paginationCtrl.render();
2304
+ });
2305
+ }
2306
+
2307
+ // Create page object used in template
2308
+ function makePage(number, text, isActive) {
2309
+ return {
2310
+ number: number,
2311
+ text: text,
2312
+ active: isActive
2313
+ };
2314
+ }
2315
+
2316
+ function getPages(currentPage, totalPages) {
2317
+ var pages = [];
2318
+
2319
+ // Default page limits
2320
+ var startPage = 1, endPage = totalPages;
2321
+ var isMaxSized = ( angular.isDefined(maxSize) && maxSize < totalPages );
2322
+
2323
+ // recompute if maxSize
2324
+ if ( isMaxSized ) {
2325
+ if ( rotate ) {
2326
+ // Current page is displayed in the middle of the visible ones
2327
+ startPage = Math.max(currentPage - Math.floor(maxSize/2), 1);
2328
+ endPage = startPage + maxSize - 1;
2329
+
2330
+ // Adjust if limit is exceeded
2331
+ if (endPage > totalPages) {
2332
+ endPage = totalPages;
2333
+ startPage = endPage - maxSize + 1;
2334
+ }
2335
+ } else {
2336
+ // Visible pages are paginated with maxSize
2337
+ startPage = ((Math.ceil(currentPage / maxSize) - 1) * maxSize) + 1;
2338
+
2339
+ // Adjust last page if limit is exceeded
2340
+ endPage = Math.min(startPage + maxSize - 1, totalPages);
2341
+ }
2342
+ }
2343
+
2344
+ // Add page number links
2345
+ for (var number = startPage; number <= endPage; number++) {
2346
+ var page = makePage(number, number, number === currentPage);
2347
+ pages.push(page);
2348
+ }
2349
+
2350
+ // Add links to move between page sets
2351
+ if ( isMaxSized && ! rotate ) {
2352
+ if ( startPage > 1 ) {
2353
+ var previousPageSet = makePage(startPage - 1, '...', false);
2354
+ pages.unshift(previousPageSet);
2355
+ }
2356
+
2357
+ if ( endPage < totalPages ) {
2358
+ var nextPageSet = makePage(endPage + 1, '...', false);
2359
+ pages.push(nextPageSet);
2360
+ }
2361
+ }
2362
+
2363
+ return pages;
2364
+ }
2365
+
2366
+ var originalRender = paginationCtrl.render;
2367
+ paginationCtrl.render = function() {
2368
+ originalRender();
2369
+ if (scope.page > 0 && scope.page <= scope.totalPages) {
2370
+ scope.pages = getPages(scope.page, scope.totalPages);
2371
+ }
2372
+ };
2373
+ }
2374
+ };
2375
+ }])
2376
+
2377
+ .constant('pagerConfig', {
2378
+ itemsPerPage: 10,
2379
+ previousText: '« Previous',
2380
+ nextText: 'Next »',
2381
+ align: true
2382
+ })
2383
+
2384
+ .directive('pager', ['pagerConfig', function(pagerConfig) {
2385
+ return {
2386
+ restrict: 'EA',
2387
+ scope: {
2388
+ totalItems: '=',
2389
+ previousText: '@',
2390
+ nextText: '@'
2391
+ },
2392
+ require: ['pager', '?ngModel'],
2393
+ controller: 'PaginationController',
2394
+ templateUrl: 'template/pagination/pager.html',
2395
+ replace: true,
2396
+ link: function(scope, element, attrs, ctrls) {
2397
+ var paginationCtrl = ctrls[0], ngModelCtrl = ctrls[1];
2398
+
2399
+ if (!ngModelCtrl) {
2400
+ return; // do nothing if no ng-model
2401
+ }
2402
+
2403
+ scope.align = angular.isDefined(attrs.align) ? scope.$parent.$eval(attrs.align) : pagerConfig.align;
2404
+ paginationCtrl.init(ngModelCtrl, pagerConfig);
2405
+ }
2406
+ };
2407
+ }]);
2408
+
2409
+ /**
2410
+ * The following features are still outstanding: animation as a
2411
+ * function, placement as a function, inside, support for more triggers than
2412
+ * just mouse enter/leave, html tooltips, and selector delegation.
2413
+ */
2414
+ angular.module( 'ui.bootstrap.tooltip', [ 'ui.bootstrap.position', 'ui.bootstrap.bindHtml' ] )
2415
+
2416
+ /**
2417
+ * The $tooltip service creates tooltip- and popover-like directives as well as
2418
+ * houses global options for them.
2419
+ */
2420
+ .provider( '$tooltip', function () {
2421
+ // The default options tooltip and popover.
2422
+ var defaultOptions = {
2423
+ placement: 'top',
2424
+ animation: true,
2425
+ popupDelay: 0
2426
+ };
2427
+
2428
+ // Default hide triggers for each show trigger
2429
+ var triggerMap = {
2430
+ 'mouseenter': 'mouseleave',
2431
+ 'click': 'click',
2432
+ 'focus': 'blur'
2433
+ };
2434
+
2435
+ // The options specified to the provider globally.
2436
+ var globalOptions = {};
2437
+
2438
+ /**
2439
+ * `options({})` allows global configuration of all tooltips in the
2440
+ * application.
2441
+ *
2442
+ * var app = angular.module( 'App', ['ui.bootstrap.tooltip'], function( $tooltipProvider ) {
2443
+ * // place tooltips left instead of top by default
2444
+ * $tooltipProvider.options( { placement: 'left' } );
2445
+ * });
2446
+ */
2447
+ this.options = function( value ) {
2448
+ angular.extend( globalOptions, value );
2449
+ };
2450
+
2451
+ /**
2452
+ * This allows you to extend the set of trigger mappings available. E.g.:
2453
+ *
2454
+ * $tooltipProvider.setTriggers( 'openTrigger': 'closeTrigger' );
2455
+ */
2456
+ this.setTriggers = function setTriggers ( triggers ) {
2457
+ angular.extend( triggerMap, triggers );
2458
+ };
2459
+
2460
+ /**
2461
+ * This is a helper function for translating camel-case to snake-case.
2462
+ */
2463
+ function snake_case(name){
2464
+ var regexp = /[A-Z]/g;
2465
+ var separator = '-';
2466
+ return name.replace(regexp, function(letter, pos) {
2467
+ return (pos ? separator : '') + letter.toLowerCase();
2468
+ });
2469
+ }
2470
+
2471
+ /**
2472
+ * Returns the actual instance of the $tooltip service.
2473
+ * TODO support multiple triggers
2474
+ */
2475
+ this.$get = [ '$window', '$compile', '$timeout', '$parse', '$document', '$position', '$interpolate', function ( $window, $compile, $timeout, $parse, $document, $position, $interpolate ) {
2476
+ return function $tooltip ( type, prefix, defaultTriggerShow ) {
2477
+ var options = angular.extend( {}, defaultOptions, globalOptions );
2478
+
2479
+ /**
2480
+ * Returns an object of show and hide triggers.
2481
+ *
2482
+ * If a trigger is supplied,
2483
+ * it is used to show the tooltip; otherwise, it will use the `trigger`
2484
+ * option passed to the `$tooltipProvider.options` method; else it will
2485
+ * default to the trigger supplied to this directive factory.
2486
+ *
2487
+ * The hide trigger is based on the show trigger. If the `trigger` option
2488
+ * was passed to the `$tooltipProvider.options` method, it will use the
2489
+ * mapped trigger from `triggerMap` or the passed trigger if the map is
2490
+ * undefined; otherwise, it uses the `triggerMap` value of the show
2491
+ * trigger; else it will just use the show trigger.
2492
+ */
2493
+ function getTriggers ( trigger ) {
2494
+ var show = trigger || options.trigger || defaultTriggerShow;
2495
+ var hide = triggerMap[show] || show;
2496
+ return {
2497
+ show: show,
2498
+ hide: hide
2499
+ };
2500
+ }
2501
+
2502
+ var directiveName = snake_case( type );
2503
+
2504
+ var startSym = $interpolate.startSymbol();
2505
+ var endSym = $interpolate.endSymbol();
2506
+ var template =
2507
+ '<div '+ directiveName +'-popup '+
2508
+ 'title="'+startSym+'tt_title'+endSym+'" '+
2509
+ 'content="'+startSym+'tt_content'+endSym+'" '+
2510
+ 'placement="'+startSym+'tt_placement'+endSym+'" '+
2511
+ 'animation="tt_animation" '+
2512
+ 'is-open="tt_isOpen"'+
2513
+ '>'+
2514
+ '</div>';
2515
+
2516
+ return {
2517
+ restrict: 'EA',
2518
+ scope: true,
2519
+ compile: function (tElem, tAttrs) {
2520
+ var tooltipLinker = $compile( template );
2521
+
2522
+ return function link ( scope, element, attrs ) {
2523
+ var tooltip;
2524
+ var transitionTimeout;
2525
+ var popupTimeout;
2526
+ var appendToBody = angular.isDefined( options.appendToBody ) ? options.appendToBody : false;
2527
+ var triggers = getTriggers( undefined );
2528
+ var hasEnableExp = angular.isDefined(attrs[prefix+'Enable']);
2529
+
2530
+ var positionTooltip = function () {
2531
+
2532
+ var ttPosition = $position.positionElements(element, tooltip, scope.tt_placement, appendToBody);
2533
+ ttPosition.top += 'px';
2534
+ ttPosition.left += 'px';
2535
+
2536
+ // Now set the calculated positioning.
2537
+ tooltip.css( ttPosition );
2538
+ };
2539
+
2540
+ // By default, the tooltip is not open.
2541
+ // TODO add ability to start tooltip opened
2542
+ scope.tt_isOpen = false;
2543
+
2544
+ function toggleTooltipBind () {
2545
+ if ( ! scope.tt_isOpen ) {
2546
+ showTooltipBind();
2547
+ } else {
2548
+ hideTooltipBind();
2549
+ }
2550
+ }
2551
+
2552
+ // Show the tooltip with delay if specified, otherwise show it immediately
2553
+ function showTooltipBind() {
2554
+ if(hasEnableExp && !scope.$eval(attrs[prefix+'Enable'])) {
2555
+ return;
2556
+ }
2557
+ if ( scope.tt_popupDelay ) {
2558
+ // Do nothing if the tooltip was already scheduled to pop-up.
2559
+ // This happens if show is triggered multiple times before any hide is triggered.
2560
+ if (!popupTimeout) {
2561
+ popupTimeout = $timeout( show, scope.tt_popupDelay, false );
2562
+ popupTimeout.then(function(reposition){reposition();});
2563
+ }
2564
+ } else {
2565
+ show()();
2566
+ }
2567
+ }
2568
+
2569
+ function hideTooltipBind () {
2570
+ scope.$apply(function () {
2571
+ hide();
2572
+ });
2573
+ }
2574
+
2575
+ // Show the tooltip popup element.
2576
+ function show() {
2577
+
2578
+ popupTimeout = null;
2579
+
2580
+ // If there is a pending remove transition, we must cancel it, lest the
2581
+ // tooltip be mysteriously removed.
2582
+ if ( transitionTimeout ) {
2583
+ $timeout.cancel( transitionTimeout );
2584
+ transitionTimeout = null;
2585
+ }
2586
+
2587
+ // Don't show empty tooltips.
2588
+ if ( ! scope.tt_content ) {
2589
+ return angular.noop;
2590
+ }
2591
+
2592
+ createTooltip();
2593
+
2594
+ // Set the initial positioning.
2595
+ tooltip.css({ top: 0, left: 0, display: 'block' });
2596
+
2597
+ // Now we add it to the DOM because need some info about it. But it's not
2598
+ // visible yet anyway.
2599
+ if ( appendToBody ) {
2600
+ $document.find( 'body' ).append( tooltip );
2601
+ } else {
2602
+ element.after( tooltip );
2603
+ }
2604
+
2605
+ positionTooltip();
2606
+
2607
+ // And show the tooltip.
2608
+ scope.tt_isOpen = true;
2609
+ scope.$digest(); // digest required as $apply is not called
2610
+
2611
+ // Return positioning function as promise callback for correct
2612
+ // positioning after draw.
2613
+ return positionTooltip;
2614
+ }
2615
+
2616
+ // Hide the tooltip popup element.
2617
+ function hide() {
2618
+ // First things first: we don't show it anymore.
2619
+ scope.tt_isOpen = false;
2620
+
2621
+ //if tooltip is going to be shown after delay, we must cancel this
2622
+ $timeout.cancel( popupTimeout );
2623
+ popupTimeout = null;
2624
+
2625
+ // And now we remove it from the DOM. However, if we have animation, we
2626
+ // need to wait for it to expire beforehand.
2627
+ // FIXME: this is a placeholder for a port of the transitions library.
2628
+ if ( scope.tt_animation ) {
2629
+ if (!transitionTimeout) {
2630
+ transitionTimeout = $timeout(removeTooltip, 500);
2631
+ }
2632
+ } else {
2633
+ removeTooltip();
2634
+ }
2635
+ }
2636
+
2637
+ function createTooltip() {
2638
+ // There can only be one tooltip element per directive shown at once.
2639
+ if (tooltip) {
2640
+ removeTooltip();
2641
+ }
2642
+ tooltip = tooltipLinker(scope, function () {});
2643
+
2644
+ // Get contents rendered into the tooltip
2645
+ scope.$digest();
2646
+ }
2647
+
2648
+ function removeTooltip() {
2649
+ transitionTimeout = null;
2650
+ if (tooltip) {
2651
+ tooltip.remove();
2652
+ tooltip = null;
2653
+ }
2654
+ }
2655
+
2656
+ /**
2657
+ * Observe the relevant attributes.
2658
+ */
2659
+ attrs.$observe( type, function ( val ) {
2660
+ scope.tt_content = val;
2661
+
2662
+ if (!val && scope.tt_isOpen ) {
2663
+ hide();
2664
+ }
2665
+ });
2666
+
2667
+ attrs.$observe( prefix+'Title', function ( val ) {
2668
+ scope.tt_title = val;
2669
+ });
2670
+
2671
+ attrs.$observe( prefix+'Placement', function ( val ) {
2672
+ scope.tt_placement = angular.isDefined( val ) ? val : options.placement;
2673
+ });
2674
+
2675
+ attrs.$observe( prefix+'PopupDelay', function ( val ) {
2676
+ var delay = parseInt( val, 10 );
2677
+ scope.tt_popupDelay = ! isNaN(delay) ? delay : options.popupDelay;
2678
+ });
2679
+
2680
+ var unregisterTriggers = function () {
2681
+ element.unbind(triggers.show, showTooltipBind);
2682
+ element.unbind(triggers.hide, hideTooltipBind);
2683
+ };
2684
+
2685
+ attrs.$observe( prefix+'Trigger', function ( val ) {
2686
+ unregisterTriggers();
2687
+
2688
+ triggers = getTriggers( val );
2689
+
2690
+ if ( triggers.show === triggers.hide ) {
2691
+ element.bind( triggers.show, toggleTooltipBind );
2692
+ } else {
2693
+ element.bind( triggers.show, showTooltipBind );
2694
+ element.bind( triggers.hide, hideTooltipBind );
2695
+ }
2696
+ });
2697
+
2698
+ var animation = scope.$eval(attrs[prefix + 'Animation']);
2699
+ scope.tt_animation = angular.isDefined(animation) ? !!animation : options.animation;
2700
+
2701
+ attrs.$observe( prefix+'AppendToBody', function ( val ) {
2702
+ appendToBody = angular.isDefined( val ) ? $parse( val )( scope ) : appendToBody;
2703
+ });
2704
+
2705
+ // if a tooltip is attached to <body> we need to remove it on
2706
+ // location change as its parent scope will probably not be destroyed
2707
+ // by the change.
2708
+ if ( appendToBody ) {
2709
+ scope.$on('$locationChangeSuccess', function closeTooltipOnLocationChangeSuccess () {
2710
+ if ( scope.tt_isOpen ) {
2711
+ hide();
2712
+ }
2713
+ });
2714
+ }
2715
+
2716
+ // Make sure tooltip is destroyed and removed.
2717
+ scope.$on('$destroy', function onDestroyTooltip() {
2718
+ $timeout.cancel( transitionTimeout );
2719
+ $timeout.cancel( popupTimeout );
2720
+ unregisterTriggers();
2721
+ removeTooltip();
2722
+ });
2723
+ };
2724
+ }
2725
+ };
2726
+ };
2727
+ }];
2728
+ })
2729
+
2730
+ .directive( 'tooltipPopup', function () {
2731
+ return {
2732
+ restrict: 'EA',
2733
+ replace: true,
2734
+ scope: { content: '@', placement: '@', animation: '&', isOpen: '&' },
2735
+ templateUrl: 'template/tooltip/tooltip-popup.html'
2736
+ };
2737
+ })
2738
+
2739
+ .directive( 'tooltip', [ '$tooltip', function ( $tooltip ) {
2740
+ return $tooltip( 'tooltip', 'tooltip', 'mouseenter' );
2741
+ }])
2742
+
2743
+ .directive( 'tooltipHtmlUnsafePopup', function () {
2744
+ return {
2745
+ restrict: 'EA',
2746
+ replace: true,
2747
+ scope: { content: '@', placement: '@', animation: '&', isOpen: '&' },
2748
+ templateUrl: 'template/tooltip/tooltip-html-unsafe-popup.html'
2749
+ };
2750
+ })
2751
+
2752
+ .directive( 'tooltipHtmlUnsafe', [ '$tooltip', function ( $tooltip ) {
2753
+ return $tooltip( 'tooltipHtmlUnsafe', 'tooltip', 'mouseenter' );
2754
+ }]);
2755
+
2756
+ /**
2757
+ * The following features are still outstanding: popup delay, animation as a
2758
+ * function, placement as a function, inside, support for more triggers than
2759
+ * just mouse enter/leave, html popovers, and selector delegatation.
2760
+ */
2761
+ angular.module( 'ui.bootstrap.popover', [ 'ui.bootstrap.tooltip' ] )
2762
+
2763
+ .directive( 'popoverPopup', function () {
2764
+ return {
2765
+ restrict: 'EA',
2766
+ replace: true,
2767
+ scope: { title: '@', content: '@', placement: '@', animation: '&', isOpen: '&' },
2768
+ templateUrl: 'template/popover/popover.html'
2769
+ };
2770
+ })
2771
+
2772
+ .directive( 'popover', [ '$tooltip', function ( $tooltip ) {
2773
+ return $tooltip( 'popover', 'popover', 'click' );
2774
+ }]);
2775
+
2776
+ angular.module('ui.bootstrap.progressbar', [])
2777
+
2778
+ .constant('progressConfig', {
2779
+ animate: true,
2780
+ max: 100
2781
+ })
2782
+
2783
+ .controller('ProgressController', ['$scope', '$attrs', 'progressConfig', function($scope, $attrs, progressConfig) {
2784
+ var self = this,
2785
+ animate = angular.isDefined($attrs.animate) ? $scope.$parent.$eval($attrs.animate) : progressConfig.animate;
2786
+
2787
+ this.bars = [];
2788
+ $scope.max = angular.isDefined($attrs.max) ? $scope.$parent.$eval($attrs.max) : progressConfig.max;
2789
+
2790
+ this.addBar = function(bar, element) {
2791
+ if ( !animate ) {
2792
+ element.css({'transition': 'none'});
2793
+ }
2794
+
2795
+ this.bars.push(bar);
2796
+
2797
+ bar.$watch('value', function( value ) {
2798
+ bar.percent = +(100 * value / $scope.max).toFixed(2);
2799
+ });
2800
+
2801
+ bar.$on('$destroy', function() {
2802
+ element = null;
2803
+ self.removeBar(bar);
2804
+ });
2805
+ };
2806
+
2807
+ this.removeBar = function(bar) {
2808
+ this.bars.splice(this.bars.indexOf(bar), 1);
2809
+ };
2810
+ }])
2811
+
2812
+ .directive('progress', function() {
2813
+ return {
2814
+ restrict: 'EA',
2815
+ replace: true,
2816
+ transclude: true,
2817
+ controller: 'ProgressController',
2818
+ require: 'progress',
2819
+ scope: {},
2820
+ templateUrl: 'template/progressbar/progress.html'
2821
+ };
2822
+ })
2823
+
2824
+ .directive('bar', function() {
2825
+ return {
2826
+ restrict: 'EA',
2827
+ replace: true,
2828
+ transclude: true,
2829
+ require: '^progress',
2830
+ scope: {
2831
+ value: '=',
2832
+ type: '@'
2833
+ },
2834
+ templateUrl: 'template/progressbar/bar.html',
2835
+ link: function(scope, element, attrs, progressCtrl) {
2836
+ progressCtrl.addBar(scope, element);
2837
+ }
2838
+ };
2839
+ })
2840
+
2841
+ .directive('progressbar', function() {
2842
+ return {
2843
+ restrict: 'EA',
2844
+ replace: true,
2845
+ transclude: true,
2846
+ controller: 'ProgressController',
2847
+ scope: {
2848
+ value: '=',
2849
+ type: '@'
2850
+ },
2851
+ templateUrl: 'template/progressbar/progressbar.html',
2852
+ link: function(scope, element, attrs, progressCtrl) {
2853
+ progressCtrl.addBar(scope, angular.element(element.children()[0]));
2854
+ }
2855
+ };
2856
+ });
2857
+ angular.module('ui.bootstrap.rating', [])
2858
+
2859
+ .constant('ratingConfig', {
2860
+ max: 5,
2861
+ stateOn: null,
2862
+ stateOff: null
2863
+ })
2864
+
2865
+ .controller('RatingController', ['$scope', '$attrs', 'ratingConfig', function($scope, $attrs, ratingConfig) {
2866
+ var ngModelCtrl = { $setViewValue: angular.noop };
2867
+
2868
+ this.init = function(ngModelCtrl_) {
2869
+ ngModelCtrl = ngModelCtrl_;
2870
+ ngModelCtrl.$render = this.render;
2871
+
2872
+ this.stateOn = angular.isDefined($attrs.stateOn) ? $scope.$parent.$eval($attrs.stateOn) : ratingConfig.stateOn;
2873
+ this.stateOff = angular.isDefined($attrs.stateOff) ? $scope.$parent.$eval($attrs.stateOff) : ratingConfig.stateOff;
2874
+
2875
+ var ratingStates = angular.isDefined($attrs.ratingStates) ? $scope.$parent.$eval($attrs.ratingStates) :
2876
+ new Array( angular.isDefined($attrs.max) ? $scope.$parent.$eval($attrs.max) : ratingConfig.max );
2877
+ $scope.range = this.buildTemplateObjects(ratingStates);
2878
+ };
2879
+
2880
+ this.buildTemplateObjects = function(states) {
2881
+ for (var i = 0, n = states.length; i < n; i++) {
2882
+ states[i] = angular.extend({ index: i }, { stateOn: this.stateOn, stateOff: this.stateOff }, states[i]);
2883
+ }
2884
+ return states;
2885
+ };
2886
+
2887
+ $scope.rate = function(value) {
2888
+ if ( !$scope.readonly && value >= 0 && value <= $scope.range.length ) {
2889
+ ngModelCtrl.$setViewValue(value);
2890
+ ngModelCtrl.$render();
2891
+ }
2892
+ };
2893
+
2894
+ $scope.enter = function(value) {
2895
+ if ( !$scope.readonly ) {
2896
+ $scope.value = value;
2897
+ }
2898
+ $scope.onHover({value: value});
2899
+ };
2900
+
2901
+ $scope.reset = function() {
2902
+ $scope.value = ngModelCtrl.$viewValue;
2903
+ $scope.onLeave();
2904
+ };
2905
+
2906
+ $scope.onKeydown = function(evt) {
2907
+ if (/(37|38|39|40)/.test(evt.which)) {
2908
+ evt.preventDefault();
2909
+ evt.stopPropagation();
2910
+ $scope.rate( $scope.value + (evt.which === 38 || evt.which === 39 ? 1 : -1) );
2911
+ }
2912
+ };
2913
+
2914
+ this.render = function() {
2915
+ $scope.value = ngModelCtrl.$viewValue;
2916
+ };
2917
+ }])
2918
+
2919
+ .directive('rating', function() {
2920
+ return {
2921
+ restrict: 'EA',
2922
+ require: ['rating', 'ngModel'],
2923
+ scope: {
2924
+ readonly: '=?',
2925
+ onHover: '&',
2926
+ onLeave: '&'
2927
+ },
2928
+ controller: 'RatingController',
2929
+ templateUrl: 'template/rating/rating.html',
2930
+ replace: true,
2931
+ link: function(scope, element, attrs, ctrls) {
2932
+ var ratingCtrl = ctrls[0], ngModelCtrl = ctrls[1];
2933
+
2934
+ if ( ngModelCtrl ) {
2935
+ ratingCtrl.init( ngModelCtrl );
2936
+ }
2937
+ }
2938
+ };
2939
+ });
2940
+
2941
+ /**
2942
+ * @ngdoc overview
2943
+ * @name ui.bootstrap.tabs
2944
+ *
2945
+ * @description
2946
+ * AngularJS version of the tabs directive.
2947
+ */
2948
+
2949
+ angular.module('ui.bootstrap.tabs', [])
2950
+
2951
+ .controller('TabsetController', ['$scope', function TabsetCtrl($scope) {
2952
+ var ctrl = this,
2953
+ tabs = ctrl.tabs = $scope.tabs = [];
2954
+
2955
+ ctrl.select = function(selectedTab) {
2956
+ angular.forEach(tabs, function(tab) {
2957
+ if (tab.active && tab !== selectedTab) {
2958
+ tab.active = false;
2959
+ tab.onDeselect();
2960
+ }
2961
+ });
2962
+ selectedTab.active = true;
2963
+ selectedTab.onSelect();
2964
+ };
2965
+
2966
+ ctrl.addTab = function addTab(tab) {
2967
+ tabs.push(tab);
2968
+ // we can't run the select function on the first tab
2969
+ // since that would select it twice
2970
+ if (tabs.length === 1) {
2971
+ tab.active = true;
2972
+ } else if (tab.active) {
2973
+ ctrl.select(tab);
2974
+ }
2975
+ };
2976
+
2977
+ ctrl.removeTab = function removeTab(tab) {
2978
+ var index = tabs.indexOf(tab);
2979
+ //Select a new tab if the tab to be removed is selected
2980
+ if (tab.active && tabs.length > 1) {
2981
+ //If this is the last tab, select the previous tab. else, the next tab.
2982
+ var newActiveIndex = index == tabs.length - 1 ? index - 1 : index + 1;
2983
+ ctrl.select(tabs[newActiveIndex]);
2984
+ }
2985
+ tabs.splice(index, 1);
2986
+ };
2987
+ }])
2988
+
2989
+ /**
2990
+ * @ngdoc directive
2991
+ * @name ui.bootstrap.tabs.directive:tabset
2992
+ * @restrict EA
2993
+ *
2994
+ * @description
2995
+ * Tabset is the outer container for the tabs directive
2996
+ *
2997
+ * @param {boolean=} vertical Whether or not to use vertical styling for the tabs.
2998
+ * @param {boolean=} justified Whether or not to use justified styling for the tabs.
2999
+ *
3000
+ * @example
3001
+ <example module="ui.bootstrap">
3002
+ <file name="index.html">
3003
+ <tabset>
3004
+ <tab heading="Tab 1"><b>First</b> Content!</tab>
3005
+ <tab heading="Tab 2"><i>Second</i> Content!</tab>
3006
+ </tabset>
3007
+ <hr />
3008
+ <tabset vertical="true">
3009
+ <tab heading="Vertical Tab 1"><b>First</b> Vertical Content!</tab>
3010
+ <tab heading="Vertical Tab 2"><i>Second</i> Vertical Content!</tab>
3011
+ </tabset>
3012
+ <tabset justified="true">
3013
+ <tab heading="Justified Tab 1"><b>First</b> Justified Content!</tab>
3014
+ <tab heading="Justified Tab 2"><i>Second</i> Justified Content!</tab>
3015
+ </tabset>
3016
+ </file>
3017
+ </example>
3018
+ */
3019
+ .directive('tabset', function() {
3020
+ return {
3021
+ restrict: 'EA',
3022
+ transclude: true,
3023
+ replace: true,
3024
+ scope: {
3025
+ type: '@'
3026
+ },
3027
+ controller: 'TabsetController',
3028
+ templateUrl: 'template/tabs/tabset.html',
3029
+ link: function(scope, element, attrs) {
3030
+ scope.vertical = angular.isDefined(attrs.vertical) ? scope.$parent.$eval(attrs.vertical) : false;
3031
+ scope.justified = angular.isDefined(attrs.justified) ? scope.$parent.$eval(attrs.justified) : false;
3032
+ }
3033
+ };
3034
+ })
3035
+
3036
+ /**
3037
+ * @ngdoc directive
3038
+ * @name ui.bootstrap.tabs.directive:tab
3039
+ * @restrict EA
3040
+ *
3041
+ * @param {string=} heading The visible heading, or title, of the tab. Set HTML headings with {@link ui.bootstrap.tabs.directive:tabHeading tabHeading}.
3042
+ * @param {string=} select An expression to evaluate when the tab is selected.
3043
+ * @param {boolean=} active A binding, telling whether or not this tab is selected.
3044
+ * @param {boolean=} disabled A binding, telling whether or not this tab is disabled.
3045
+ *
3046
+ * @description
3047
+ * Creates a tab with a heading and content. Must be placed within a {@link ui.bootstrap.tabs.directive:tabset tabset}.
3048
+ *
3049
+ * @example
3050
+ <example module="ui.bootstrap">
3051
+ <file name="index.html">
3052
+ <div ng-controller="TabsDemoCtrl">
3053
+ <button class="btn btn-small" ng-click="items[0].active = true">
3054
+ Select item 1, using active binding
3055
+ </button>
3056
+ <button class="btn btn-small" ng-click="items[1].disabled = !items[1].disabled">
3057
+ Enable/disable item 2, using disabled binding
3058
+ </button>
3059
+ <br />
3060
+ <tabset>
3061
+ <tab heading="Tab 1">First Tab</tab>
3062
+ <tab select="alertMe()">
3063
+ <tab-heading><i class="icon-bell"></i> Alert me!</tab-heading>
3064
+ Second Tab, with alert callback and html heading!
3065
+ </tab>
3066
+ <tab ng-repeat="item in items"
3067
+ heading="{{item.title}}"
3068
+ disabled="item.disabled"
3069
+ active="item.active">
3070
+ {{item.content}}
3071
+ </tab>
3072
+ </tabset>
3073
+ </div>
3074
+ </file>
3075
+ <file name="script.js">
3076
+ function TabsDemoCtrl($scope) {
3077
+ $scope.items = [
3078
+ { title:"Dynamic Title 1", content:"Dynamic Item 0" },
3079
+ { title:"Dynamic Title 2", content:"Dynamic Item 1", disabled: true }
3080
+ ];
3081
+
3082
+ $scope.alertMe = function() {
3083
+ setTimeout(function() {
3084
+ alert("You've selected the alert tab!");
3085
+ });
3086
+ };
3087
+ };
3088
+ </file>
3089
+ </example>
3090
+ */
3091
+
3092
+ /**
3093
+ * @ngdoc directive
3094
+ * @name ui.bootstrap.tabs.directive:tabHeading
3095
+ * @restrict EA
3096
+ *
3097
+ * @description
3098
+ * Creates an HTML heading for a {@link ui.bootstrap.tabs.directive:tab tab}. Must be placed as a child of a tab element.
3099
+ *
3100
+ * @example
3101
+ <example module="ui.bootstrap">
3102
+ <file name="index.html">
3103
+ <tabset>
3104
+ <tab>
3105
+ <tab-heading><b>HTML</b> in my titles?!</tab-heading>
3106
+ And some content, too!
3107
+ </tab>
3108
+ <tab>
3109
+ <tab-heading><i class="icon-heart"></i> Icon heading?!?</tab-heading>
3110
+ That's right.
3111
+ </tab>
3112
+ </tabset>
3113
+ </file>
3114
+ </example>
3115
+ */
3116
+ .directive('tab', ['$parse', function($parse) {
3117
+ return {
3118
+ require: '^tabset',
3119
+ restrict: 'EA',
3120
+ replace: true,
3121
+ templateUrl: 'template/tabs/tab.html',
3122
+ transclude: true,
3123
+ scope: {
3124
+ active: '=?',
3125
+ heading: '@',
3126
+ onSelect: '&select', //This callback is called in contentHeadingTransclude
3127
+ //once it inserts the tab's content into the dom
3128
+ onDeselect: '&deselect'
3129
+ },
3130
+ controller: function() {
3131
+ //Empty controller so other directives can require being 'under' a tab
3132
+ },
3133
+ compile: function(elm, attrs, transclude) {
3134
+ return function postLink(scope, elm, attrs, tabsetCtrl) {
3135
+ scope.$watch('active', function(active) {
3136
+ if (active) {
3137
+ tabsetCtrl.select(scope);
3138
+ }
3139
+ });
3140
+
3141
+ scope.disabled = false;
3142
+ if ( attrs.disabled ) {
3143
+ scope.$parent.$watch($parse(attrs.disabled), function(value) {
3144
+ scope.disabled = !! value;
3145
+ });
3146
+ }
3147
+
3148
+ scope.select = function() {
3149
+ if ( !scope.disabled ) {
3150
+ scope.active = true;
3151
+ }
3152
+ };
3153
+
3154
+ tabsetCtrl.addTab(scope);
3155
+ scope.$on('$destroy', function() {
3156
+ tabsetCtrl.removeTab(scope);
3157
+ });
3158
+
3159
+ //We need to transclude later, once the content container is ready.
3160
+ //when this link happens, we're inside a tab heading.
3161
+ scope.$transcludeFn = transclude;
3162
+ };
3163
+ }
3164
+ };
3165
+ }])
3166
+
3167
+ .directive('tabHeadingTransclude', [function() {
3168
+ return {
3169
+ restrict: 'A',
3170
+ require: '^tab',
3171
+ link: function(scope, elm, attrs, tabCtrl) {
3172
+ scope.$watch('headingElement', function updateHeadingElement(heading) {
3173
+ if (heading) {
3174
+ elm.html('');
3175
+ elm.append(heading);
3176
+ }
3177
+ });
3178
+ }
3179
+ };
3180
+ }])
3181
+
3182
+ .directive('tabContentTransclude', function() {
3183
+ return {
3184
+ restrict: 'A',
3185
+ require: '^tabset',
3186
+ link: function(scope, elm, attrs) {
3187
+ var tab = scope.$eval(attrs.tabContentTransclude);
3188
+
3189
+ //Now our tab is ready to be transcluded: both the tab heading area
3190
+ //and the tab content area are loaded. Transclude 'em both.
3191
+ tab.$transcludeFn(tab.$parent, function(contents) {
3192
+ angular.forEach(contents, function(node) {
3193
+ if (isTabHeading(node)) {
3194
+ //Let tabHeadingTransclude know.
3195
+ tab.headingElement = node;
3196
+ } else {
3197
+ elm.append(node);
3198
+ }
3199
+ });
3200
+ });
3201
+ }
3202
+ };
3203
+ function isTabHeading(node) {
3204
+ return node.tagName && (
3205
+ node.hasAttribute('tab-heading') ||
3206
+ node.hasAttribute('data-tab-heading') ||
3207
+ node.tagName.toLowerCase() === 'tab-heading' ||
3208
+ node.tagName.toLowerCase() === 'data-tab-heading'
3209
+ );
3210
+ }
3211
+ })
3212
+
3213
+ ;
3214
+
3215
+ angular.module('ui.bootstrap.timepicker', [])
3216
+
3217
+ .constant('timepickerConfig', {
3218
+ hourStep: 1,
3219
+ minuteStep: 1,
3220
+ showMeridian: true,
3221
+ meridians: null,
3222
+ readonlyInput: false,
3223
+ mousewheel: true
3224
+ })
3225
+
3226
+ .controller('TimepickerController', ['$scope', '$attrs', '$parse', '$log', '$locale', 'timepickerConfig', function($scope, $attrs, $parse, $log, $locale, timepickerConfig) {
3227
+ var selected = new Date(),
3228
+ ngModelCtrl = { $setViewValue: angular.noop }, // nullModelCtrl
3229
+ meridians = angular.isDefined($attrs.meridians) ? $scope.$parent.$eval($attrs.meridians) : timepickerConfig.meridians || $locale.DATETIME_FORMATS.AMPMS;
3230
+
3231
+ this.init = function( ngModelCtrl_, inputs ) {
3232
+ ngModelCtrl = ngModelCtrl_;
3233
+ ngModelCtrl.$render = this.render;
3234
+
3235
+ var hoursInputEl = inputs.eq(0),
3236
+ minutesInputEl = inputs.eq(1);
3237
+
3238
+ var mousewheel = angular.isDefined($attrs.mousewheel) ? $scope.$parent.$eval($attrs.mousewheel) : timepickerConfig.mousewheel;
3239
+ if ( mousewheel ) {
3240
+ this.setupMousewheelEvents( hoursInputEl, minutesInputEl );
3241
+ }
3242
+
3243
+ $scope.readonlyInput = angular.isDefined($attrs.readonlyInput) ? $scope.$parent.$eval($attrs.readonlyInput) : timepickerConfig.readonlyInput;
3244
+ this.setupInputEvents( hoursInputEl, minutesInputEl );
3245
+ };
3246
+
3247
+ var hourStep = timepickerConfig.hourStep;
3248
+ if ($attrs.hourStep) {
3249
+ $scope.$parent.$watch($parse($attrs.hourStep), function(value) {
3250
+ hourStep = parseInt(value, 10);
3251
+ });
3252
+ }
3253
+
3254
+ var minuteStep = timepickerConfig.minuteStep;
3255
+ if ($attrs.minuteStep) {
3256
+ $scope.$parent.$watch($parse($attrs.minuteStep), function(value) {
3257
+ minuteStep = parseInt(value, 10);
3258
+ });
3259
+ }
3260
+
3261
+ // 12H / 24H mode
3262
+ $scope.showMeridian = timepickerConfig.showMeridian;
3263
+ if ($attrs.showMeridian) {
3264
+ $scope.$parent.$watch($parse($attrs.showMeridian), function(value) {
3265
+ $scope.showMeridian = !!value;
3266
+
3267
+ if ( ngModelCtrl.$error.time ) {
3268
+ // Evaluate from template
3269
+ var hours = getHoursFromTemplate(), minutes = getMinutesFromTemplate();
3270
+ if (angular.isDefined( hours ) && angular.isDefined( minutes )) {
3271
+ selected.setHours( hours );
3272
+ refresh();
3273
+ }
3274
+ } else {
3275
+ updateTemplate();
3276
+ }
3277
+ });
3278
+ }
3279
+
3280
+ // Get $scope.hours in 24H mode if valid
3281
+ function getHoursFromTemplate ( ) {
3282
+ var hours = parseInt( $scope.hours, 10 );
3283
+ var valid = ( $scope.showMeridian ) ? (hours > 0 && hours < 13) : (hours >= 0 && hours < 24);
3284
+ if ( !valid ) {
3285
+ return undefined;
3286
+ }
3287
+
3288
+ if ( $scope.showMeridian ) {
3289
+ if ( hours === 12 ) {
3290
+ hours = 0;
3291
+ }
3292
+ if ( $scope.meridian === meridians[1] ) {
3293
+ hours = hours + 12;
3294
+ }
3295
+ }
3296
+ return hours;
3297
+ }
3298
+
3299
+ function getMinutesFromTemplate() {
3300
+ var minutes = parseInt($scope.minutes, 10);
3301
+ return ( minutes >= 0 && minutes < 60 ) ? minutes : undefined;
3302
+ }
3303
+
3304
+ function pad( value ) {
3305
+ return ( angular.isDefined(value) && value.toString().length < 2 ) ? '0' + value : value;
3306
+ }
3307
+
3308
+ // Respond on mousewheel spin
3309
+ this.setupMousewheelEvents = function( hoursInputEl, minutesInputEl ) {
3310
+ var isScrollingUp = function(e) {
3311
+ if (e.originalEvent) {
3312
+ e = e.originalEvent;
3313
+ }
3314
+ //pick correct delta variable depending on event
3315
+ var delta = (e.wheelDelta) ? e.wheelDelta : -e.deltaY;
3316
+ return (e.detail || delta > 0);
3317
+ };
3318
+
3319
+ hoursInputEl.bind('mousewheel wheel', function(e) {
3320
+ $scope.$apply( (isScrollingUp(e)) ? $scope.incrementHours() : $scope.decrementHours() );
3321
+ e.preventDefault();
3322
+ });
3323
+
3324
+ minutesInputEl.bind('mousewheel wheel', function(e) {
3325
+ $scope.$apply( (isScrollingUp(e)) ? $scope.incrementMinutes() : $scope.decrementMinutes() );
3326
+ e.preventDefault();
3327
+ });
3328
+
3329
+ };
3330
+
3331
+ this.setupInputEvents = function( hoursInputEl, minutesInputEl ) {
3332
+ if ( $scope.readonlyInput ) {
3333
+ $scope.updateHours = angular.noop;
3334
+ $scope.updateMinutes = angular.noop;
3335
+ return;
3336
+ }
3337
+
3338
+ var invalidate = function(invalidHours, invalidMinutes) {
3339
+ ngModelCtrl.$setViewValue( null );
3340
+ ngModelCtrl.$setValidity('time', false);
3341
+ if (angular.isDefined(invalidHours)) {
3342
+ $scope.invalidHours = invalidHours;
3343
+ }
3344
+ if (angular.isDefined(invalidMinutes)) {
3345
+ $scope.invalidMinutes = invalidMinutes;
3346
+ }
3347
+ };
3348
+
3349
+ $scope.updateHours = function() {
3350
+ var hours = getHoursFromTemplate();
3351
+
3352
+ if ( angular.isDefined(hours) ) {
3353
+ selected.setHours( hours );
3354
+ refresh( 'h' );
3355
+ } else {
3356
+ invalidate(true);
3357
+ }
3358
+ };
3359
+
3360
+ hoursInputEl.bind('blur', function(e) {
3361
+ if ( !$scope.invalidHours && $scope.hours < 10) {
3362
+ $scope.$apply( function() {
3363
+ $scope.hours = pad( $scope.hours );
3364
+ });
3365
+ }
3366
+ });
3367
+
3368
+ $scope.updateMinutes = function() {
3369
+ var minutes = getMinutesFromTemplate();
3370
+
3371
+ if ( angular.isDefined(minutes) ) {
3372
+ selected.setMinutes( minutes );
3373
+ refresh( 'm' );
3374
+ } else {
3375
+ invalidate(undefined, true);
3376
+ }
3377
+ };
3378
+
3379
+ minutesInputEl.bind('blur', function(e) {
3380
+ if ( !$scope.invalidMinutes && $scope.minutes < 10 ) {
3381
+ $scope.$apply( function() {
3382
+ $scope.minutes = pad( $scope.minutes );
3383
+ });
3384
+ }
3385
+ });
3386
+
3387
+ };
3388
+
3389
+ this.render = function() {
3390
+ var date = ngModelCtrl.$modelValue ? new Date( ngModelCtrl.$modelValue ) : null;
3391
+
3392
+ if ( isNaN(date) ) {
3393
+ ngModelCtrl.$setValidity('time', false);
3394
+ $log.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');
3395
+ } else {
3396
+ if ( date ) {
3397
+ selected = date;
3398
+ }
3399
+ makeValid();
3400
+ updateTemplate();
3401
+ }
3402
+ };
3403
+
3404
+ // Call internally when we know that model is valid.
3405
+ function refresh( keyboardChange ) {
3406
+ makeValid();
3407
+ ngModelCtrl.$setViewValue( new Date(selected) );
3408
+ updateTemplate( keyboardChange );
3409
+ }
3410
+
3411
+ function makeValid() {
3412
+ ngModelCtrl.$setValidity('time', true);
3413
+ $scope.invalidHours = false;
3414
+ $scope.invalidMinutes = false;
3415
+ }
3416
+
3417
+ function updateTemplate( keyboardChange ) {
3418
+ var hours = selected.getHours(), minutes = selected.getMinutes();
3419
+
3420
+ if ( $scope.showMeridian ) {
3421
+ hours = ( hours === 0 || hours === 12 ) ? 12 : hours % 12; // Convert 24 to 12 hour system
3422
+ }
3423
+
3424
+ $scope.hours = keyboardChange === 'h' ? hours : pad(hours);
3425
+ $scope.minutes = keyboardChange === 'm' ? minutes : pad(minutes);
3426
+ $scope.meridian = selected.getHours() < 12 ? meridians[0] : meridians[1];
3427
+ }
3428
+
3429
+ function addMinutes( minutes ) {
3430
+ var dt = new Date( selected.getTime() + minutes * 60000 );
3431
+ selected.setHours( dt.getHours(), dt.getMinutes() );
3432
+ refresh();
3433
+ }
3434
+
3435
+ $scope.incrementHours = function() {
3436
+ addMinutes( hourStep * 60 );
3437
+ };
3438
+ $scope.decrementHours = function() {
3439
+ addMinutes( - hourStep * 60 );
3440
+ };
3441
+ $scope.incrementMinutes = function() {
3442
+ addMinutes( minuteStep );
3443
+ };
3444
+ $scope.decrementMinutes = function() {
3445
+ addMinutes( - minuteStep );
3446
+ };
3447
+ $scope.toggleMeridian = function() {
3448
+ addMinutes( 12 * 60 * (( selected.getHours() < 12 ) ? 1 : -1) );
3449
+ };
3450
+ }])
3451
+
3452
+ .directive('timepicker', function () {
3453
+ return {
3454
+ restrict: 'EA',
3455
+ require: ['timepicker', '?^ngModel'],
3456
+ controller:'TimepickerController',
3457
+ replace: true,
3458
+ scope: {},
3459
+ templateUrl: 'template/timepicker/timepicker.html',
3460
+ link: function(scope, element, attrs, ctrls) {
3461
+ var timepickerCtrl = ctrls[0], ngModelCtrl = ctrls[1];
3462
+
3463
+ if ( ngModelCtrl ) {
3464
+ timepickerCtrl.init( ngModelCtrl, element.find('input') );
3465
+ }
3466
+ }
3467
+ };
3468
+ });
3469
+
3470
+ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.position', 'ui.bootstrap.bindHtml'])
3471
+
3472
+ /**
3473
+ * A helper service that can parse typeahead's syntax (string provided by users)
3474
+ * Extracted to a separate service for ease of unit testing
3475
+ */
3476
+ .factory('typeaheadParser', ['$parse', function ($parse) {
3477
+
3478
+ // 00000111000000000000022200000000000000003333333333333330000000000044000
3479
+ var TYPEAHEAD_REGEXP = /^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;
3480
+
3481
+ return {
3482
+ parse:function (input) {
3483
+
3484
+ var match = input.match(TYPEAHEAD_REGEXP);
3485
+ if (!match) {
3486
+ throw new Error(
3487
+ 'Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_"' +
3488
+ ' but got "' + input + '".');
3489
+ }
3490
+
3491
+ return {
3492
+ itemName:match[3],
3493
+ source:$parse(match[4]),
3494
+ viewMapper:$parse(match[2] || match[1]),
3495
+ modelMapper:$parse(match[1])
3496
+ };
3497
+ }
3498
+ };
3499
+ }])
3500
+
3501
+ .directive('typeahead', ['$compile', '$parse', '$q', '$timeout', '$document', '$position', 'typeaheadParser',
3502
+ function ($compile, $parse, $q, $timeout, $document, $position, typeaheadParser) {
3503
+
3504
+ var HOT_KEYS = [9, 13, 27, 38, 40];
3505
+
3506
+ return {
3507
+ require:'ngModel',
3508
+ link:function (originalScope, element, attrs, modelCtrl) {
3509
+
3510
+ //SUPPORTED ATTRIBUTES (OPTIONS)
3511
+
3512
+ //minimal no of characters that needs to be entered before typeahead kicks-in
3513
+ var minSearch = originalScope.$eval(attrs.typeaheadMinLength) || 1;
3514
+
3515
+ //minimal wait time after last character typed before typehead kicks-in
3516
+ var waitTime = originalScope.$eval(attrs.typeaheadWaitMs) || 0;
3517
+
3518
+ //should it restrict model values to the ones selected from the popup only?
3519
+ var isEditable = originalScope.$eval(attrs.typeaheadEditable) !== false;
3520
+
3521
+ //binding to a variable that indicates if matches are being retrieved asynchronously
3522
+ var isLoadingSetter = $parse(attrs.typeaheadLoading).assign || angular.noop;
3523
+
3524
+ //a callback executed when a match is selected
3525
+ var onSelectCallback = $parse(attrs.typeaheadOnSelect);
3526
+
3527
+ var inputFormatter = attrs.typeaheadInputFormatter ? $parse(attrs.typeaheadInputFormatter) : undefined;
3528
+
3529
+ var appendToBody = attrs.typeaheadAppendToBody ? originalScope.$eval(attrs.typeaheadAppendToBody) : false;
3530
+
3531
+ //INTERNAL VARIABLES
3532
+
3533
+ //model setter executed upon match selection
3534
+ var $setModelValue = $parse(attrs.ngModel).assign;
3535
+
3536
+ //expressions used by typeahead
3537
+ var parserResult = typeaheadParser.parse(attrs.typeahead);
3538
+
3539
+ var hasFocus;
3540
+
3541
+ //create a child scope for the typeahead directive so we are not polluting original scope
3542
+ //with typeahead-specific data (matches, query etc.)
3543
+ var scope = originalScope.$new();
3544
+ originalScope.$on('$destroy', function(){
3545
+ scope.$destroy();
3546
+ });
3547
+
3548
+ // WAI-ARIA
3549
+ var popupId = 'typeahead-' + scope.$id + '-' + Math.floor(Math.random() * 10000);
3550
+ element.attr({
3551
+ 'aria-autocomplete': 'list',
3552
+ 'aria-expanded': false,
3553
+ 'aria-owns': popupId
3554
+ });
3555
+
3556
+ //pop-up element used to display matches
3557
+ var popUpEl = angular.element('<div typeahead-popup></div>');
3558
+ popUpEl.attr({
3559
+ id: popupId,
3560
+ matches: 'matches',
3561
+ active: 'activeIdx',
3562
+ select: 'select(activeIdx)',
3563
+ query: 'query',
3564
+ position: 'position'
3565
+ });
3566
+ //custom item template
3567
+ if (angular.isDefined(attrs.typeaheadTemplateUrl)) {
3568
+ popUpEl.attr('template-url', attrs.typeaheadTemplateUrl);
3569
+ }
3570
+
3571
+ var resetMatches = function() {
3572
+ scope.matches = [];
3573
+ scope.activeIdx = -1;
3574
+ element.attr('aria-expanded', false);
3575
+ };
3576
+
3577
+ var getMatchId = function(index) {
3578
+ return popupId + '-option-' + index;
3579
+ };
3580
+
3581
+ // Indicate that the specified match is the active (pre-selected) item in the list owned by this typeahead.
3582
+ // This attribute is added or removed automatically when the `activeIdx` changes.
3583
+ scope.$watch('activeIdx', function(index) {
3584
+ if (index < 0) {
3585
+ element.removeAttr('aria-activedescendant');
3586
+ } else {
3587
+ element.attr('aria-activedescendant', getMatchId(index));
3588
+ }
3589
+ });
3590
+
3591
+ var getMatchesAsync = function(inputValue) {
3592
+
3593
+ var locals = {$viewValue: inputValue};
3594
+ isLoadingSetter(originalScope, true);
3595
+ $q.when(parserResult.source(originalScope, locals)).then(function(matches) {
3596
+
3597
+ //it might happen that several async queries were in progress if a user were typing fast
3598
+ //but we are interested only in responses that correspond to the current view value
3599
+ var onCurrentRequest = (inputValue === modelCtrl.$viewValue);
3600
+ if (onCurrentRequest && hasFocus) {
3601
+ if (matches.length > 0) {
3602
+
3603
+ scope.activeIdx = 0;
3604
+ scope.matches.length = 0;
3605
+
3606
+ //transform labels
3607
+ for(var i=0; i<matches.length; i++) {
3608
+ locals[parserResult.itemName] = matches[i];
3609
+ scope.matches.push({
3610
+ id: getMatchId(i),
3611
+ label: parserResult.viewMapper(scope, locals),
3612
+ model: matches[i]
3613
+ });
3614
+ }
3615
+
3616
+ scope.query = inputValue;
3617
+ //position pop-up with matches - we need to re-calculate its position each time we are opening a window
3618
+ //with matches as a pop-up might be absolute-positioned and position of an input might have changed on a page
3619
+ //due to other elements being rendered
3620
+ scope.position = appendToBody ? $position.offset(element) : $position.position(element);
3621
+ scope.position.top = scope.position.top + element.prop('offsetHeight');
3622
+
3623
+ element.attr('aria-expanded', true);
3624
+ } else {
3625
+ resetMatches();
3626
+ }
3627
+ }
3628
+ if (onCurrentRequest) {
3629
+ isLoadingSetter(originalScope, false);
3630
+ }
3631
+ }, function(){
3632
+ resetMatches();
3633
+ isLoadingSetter(originalScope, false);
3634
+ });
3635
+ };
3636
+
3637
+ resetMatches();
3638
+
3639
+ //we need to propagate user's query so we can higlight matches
3640
+ scope.query = undefined;
3641
+
3642
+ //Declare the timeout promise var outside the function scope so that stacked calls can be cancelled later
3643
+ var timeoutPromise;
3644
+
3645
+ var scheduleSearchWithTimeout = function(inputValue) {
3646
+ timeoutPromise = $timeout(function () {
3647
+ getMatchesAsync(inputValue);
3648
+ }, waitTime);
3649
+ };
3650
+
3651
+ var cancelPreviousTimeout = function() {
3652
+ if (timeoutPromise) {
3653
+ $timeout.cancel(timeoutPromise);
3654
+ }
3655
+ };
3656
+
3657
+ //plug into $parsers pipeline to open a typeahead on view changes initiated from DOM
3658
+ //$parsers kick-in on all the changes coming from the view as well as manually triggered by $setViewValue
3659
+ modelCtrl.$parsers.unshift(function (inputValue) {
3660
+
3661
+ hasFocus = true;
3662
+
3663
+ if (inputValue && inputValue.length >= minSearch) {
3664
+ if (waitTime > 0) {
3665
+ cancelPreviousTimeout();
3666
+ scheduleSearchWithTimeout(inputValue);
3667
+ } else {
3668
+ getMatchesAsync(inputValue);
3669
+ }
3670
+ } else {
3671
+ isLoadingSetter(originalScope, false);
3672
+ cancelPreviousTimeout();
3673
+ resetMatches();
3674
+ }
3675
+
3676
+ if (isEditable) {
3677
+ return inputValue;
3678
+ } else {
3679
+ if (!inputValue) {
3680
+ // Reset in case user had typed something previously.
3681
+ modelCtrl.$setValidity('editable', true);
3682
+ return inputValue;
3683
+ } else {
3684
+ modelCtrl.$setValidity('editable', false);
3685
+ return undefined;
3686
+ }
3687
+ }
3688
+ });
3689
+
3690
+ modelCtrl.$formatters.push(function (modelValue) {
3691
+
3692
+ var candidateViewValue, emptyViewValue;
3693
+ var locals = {};
3694
+
3695
+ if (inputFormatter) {
3696
+
3697
+ locals['$model'] = modelValue;
3698
+ return inputFormatter(originalScope, locals);
3699
+
3700
+ } else {
3701
+
3702
+ //it might happen that we don't have enough info to properly render input value
3703
+ //we need to check for this situation and simply return model value if we can't apply custom formatting
3704
+ locals[parserResult.itemName] = modelValue;
3705
+ candidateViewValue = parserResult.viewMapper(originalScope, locals);
3706
+ locals[parserResult.itemName] = undefined;
3707
+ emptyViewValue = parserResult.viewMapper(originalScope, locals);
3708
+
3709
+ return candidateViewValue!== emptyViewValue ? candidateViewValue : modelValue;
3710
+ }
3711
+ });
3712
+
3713
+ scope.select = function (activeIdx) {
3714
+ //called from within the $digest() cycle
3715
+ var locals = {};
3716
+ var model, item;
3717
+
3718
+ locals[parserResult.itemName] = item = scope.matches[activeIdx].model;
3719
+ model = parserResult.modelMapper(originalScope, locals);
3720
+ $setModelValue(originalScope, model);
3721
+ modelCtrl.$setValidity('editable', true);
3722
+
3723
+ onSelectCallback(originalScope, {
3724
+ $item: item,
3725
+ $model: model,
3726
+ $label: parserResult.viewMapper(originalScope, locals)
3727
+ });
3728
+
3729
+ resetMatches();
3730
+
3731
+ //return focus to the input element if a match was selected via a mouse click event
3732
+ // use timeout to avoid $rootScope:inprog error
3733
+ $timeout(function() { element[0].focus(); }, 0, false);
3734
+ };
3735
+
3736
+ //bind keyboard events: arrows up(38) / down(40), enter(13) and tab(9), esc(27)
3737
+ element.bind('keydown', function (evt) {
3738
+
3739
+ //typeahead is open and an "interesting" key was pressed
3740
+ if (scope.matches.length === 0 || HOT_KEYS.indexOf(evt.which) === -1) {
3741
+ return;
3742
+ }
3743
+
3744
+ evt.preventDefault();
3745
+
3746
+ if (evt.which === 40) {
3747
+ scope.activeIdx = (scope.activeIdx + 1) % scope.matches.length;
3748
+ scope.$digest();
3749
+
3750
+ } else if (evt.which === 38) {
3751
+ scope.activeIdx = (scope.activeIdx ? scope.activeIdx : scope.matches.length) - 1;
3752
+ scope.$digest();
3753
+
3754
+ } else if (evt.which === 13 || evt.which === 9) {
3755
+ scope.$apply(function () {
3756
+ scope.select(scope.activeIdx);
3757
+ });
3758
+
3759
+ } else if (evt.which === 27) {
3760
+ evt.stopPropagation();
3761
+
3762
+ resetMatches();
3763
+ scope.$digest();
3764
+ }
3765
+ });
3766
+
3767
+ element.bind('blur', function (evt) {
3768
+ hasFocus = false;
3769
+ });
3770
+
3771
+ // Keep reference to click handler to unbind it.
3772
+ var dismissClickHandler = function (evt) {
3773
+ if (element[0] !== evt.target) {
3774
+ resetMatches();
3775
+ scope.$digest();
3776
+ }
3777
+ };
3778
+
3779
+ $document.bind('click', dismissClickHandler);
3780
+
3781
+ originalScope.$on('$destroy', function(){
3782
+ $document.unbind('click', dismissClickHandler);
3783
+ });
3784
+
3785
+ var $popup = $compile(popUpEl)(scope);
3786
+ if ( appendToBody ) {
3787
+ $document.find('body').append($popup);
3788
+ } else {
3789
+ element.after($popup);
3790
+ }
3791
+ }
3792
+ };
3793
+
3794
+ }])
3795
+
3796
+ .directive('typeaheadPopup', function () {
3797
+ return {
3798
+ restrict:'EA',
3799
+ scope:{
3800
+ matches:'=',
3801
+ query:'=',
3802
+ active:'=',
3803
+ position:'=',
3804
+ select:'&'
3805
+ },
3806
+ replace:true,
3807
+ templateUrl:'template/typeahead/typeahead-popup.html',
3808
+ link:function (scope, element, attrs) {
3809
+
3810
+ scope.templateUrl = attrs.templateUrl;
3811
+
3812
+ scope.isOpen = function () {
3813
+ return scope.matches.length > 0;
3814
+ };
3815
+
3816
+ scope.isActive = function (matchIdx) {
3817
+ return scope.active == matchIdx;
3818
+ };
3819
+
3820
+ scope.selectActive = function (matchIdx) {
3821
+ scope.active = matchIdx;
3822
+ };
3823
+
3824
+ scope.selectMatch = function (activeIdx) {
3825
+ scope.select({activeIdx:activeIdx});
3826
+ };
3827
+ }
3828
+ };
3829
+ })
3830
+
3831
+ .directive('typeaheadMatch', ['$http', '$templateCache', '$compile', '$parse', function ($http, $templateCache, $compile, $parse) {
3832
+ return {
3833
+ restrict:'EA',
3834
+ scope:{
3835
+ index:'=',
3836
+ match:'=',
3837
+ query:'='
3838
+ },
3839
+ link:function (scope, element, attrs) {
3840
+ var tplUrl = $parse(attrs.templateUrl)(scope.$parent) || 'template/typeahead/typeahead-match.html';
3841
+ $http.get(tplUrl, {cache: $templateCache}).success(function(tplContent){
3842
+ element.replaceWith($compile(tplContent.trim())(scope));
3843
+ });
3844
+ }
3845
+ };
3846
+ }])
3847
+
3848
+ .filter('typeaheadHighlight', function() {
3849
+
3850
+ function escapeRegexp(queryToEscape) {
3851
+ return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
3852
+ }
3853
+
3854
+ return function(matchItem, query) {
3855
+ return query ? ('' + matchItem).replace(new RegExp(escapeRegexp(query), 'gi'), '<strong>$&</strong>') : matchItem;
3856
+ };
3857
+ });