kuppayam 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1055) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/config/kuppayam_manifest.js +0 -0
  6. data/app/assets/images/kuppayam/defaults/default-large.png +0 -0
  7. data/app/assets/images/kuppayam/defaults/default-small.png +0 -0
  8. data/app/assets/images/kuppayam/defaults/user-large.png +0 -0
  9. data/app/assets/images/kuppayam/defaults/user-small.png +0 -0
  10. data/app/assets/images/kuppayam/favicon.png +0 -0
  11. data/app/assets/images/kuppayam/logo.png +0 -0
  12. data/app/assets/javascripts/jquery_with_ujs.js +15 -0
  13. data/app/assets/javascripts/kuppayam.js +21 -0
  14. data/app/assets/javascripts/kuppayam/utilities.js +68 -0
  15. data/app/assets/stylesheets/kuppayam.css +23 -0
  16. data/app/assets/stylesheets/kuppayam/custom.css +8 -0
  17. data/app/assets/stylesheets/kuppayam/handycss.css +996 -0
  18. data/app/controllers/kuppayam/base_controller.rb +43 -0
  19. data/app/helpers/breadcrumbs_helper.rb +27 -0
  20. data/app/helpers/filter_helper.rb +370 -0
  21. data/app/helpers/flash_helper.rb +54 -0
  22. data/app/helpers/image_helper.rb +209 -0
  23. data/app/helpers/kuppayam_helper.rb +72 -0
  24. data/app/helpers/meta_tags_helper.rb +50 -0
  25. data/app/helpers/navigation_helper.rb +17 -0
  26. data/app/helpers/params_parser_helper.rb +48 -0
  27. data/app/helpers/render_helper.rb +28 -0
  28. data/app/helpers/resource_helper.rb +133 -0
  29. data/app/views/kaminari/_first_page.html.erb +11 -0
  30. data/app/views/kaminari/_gap.html.erb +8 -0
  31. data/app/views/kaminari/_last_page.html.erb +11 -0
  32. data/app/views/kaminari/_next_page.html.erb +11 -0
  33. data/app/views/kaminari/_page.html.erb +12 -0
  34. data/app/views/kaminari/_paginator.html.erb +25 -0
  35. data/app/views/kaminari/_prev_page.html.erb +11 -0
  36. data/app/views/layouts/kuppayam/_footer.html.erb +25 -0
  37. data/app/views/layouts/kuppayam/_head.html.erb +29 -0
  38. data/app/views/layouts/kuppayam/_header.html.erb +43 -0
  39. data/app/views/layouts/kuppayam/_heading.html.erb +9 -0
  40. data/app/views/layouts/kuppayam/_navbar.html.erb +321 -0
  41. data/app/views/layouts/kuppayam/_overlays.html.erb +40 -0
  42. data/app/views/layouts/kuppayam/_settings_pane.html.erb +107 -0
  43. data/app/views/layouts/kuppayam/_sidebar.html.erb +612 -0
  44. data/app/views/layouts/kuppayam/_sidebar_old.html.erb +54 -0
  45. data/app/views/layouts/kuppayam/admin.html.erb +59 -0
  46. data/app/views/layouts/kuppayam/blank.html.erb +37 -0
  47. data/config/initializers/config_center.rb +60 -0
  48. data/config/initializers/kuppayam_validators.rb +76 -0
  49. data/config/routes.rb +2 -0
  50. data/lib/kuppayam.rb +8 -0
  51. data/lib/kuppayam/action_view/form_helper.rb +254 -0
  52. data/lib/kuppayam/action_view/modal_helper.rb +7 -0
  53. data/lib/kuppayam/action_view/theme_helper.rb +226 -0
  54. data/lib/kuppayam/engine.rb +34 -0
  55. data/lib/kuppayam/version.rb +3 -0
  56. data/lib/tasks/kuppayam_tasks.rake +4 -0
  57. data/vendor/assets/fonts/elusive/css/animation.css +85 -0
  58. data/vendor/assets/fonts/elusive/css/elusive-codes.css +272 -0
  59. data/vendor/assets/fonts/elusive/css/elusive-embedded.css +325 -0
  60. data/vendor/assets/fonts/elusive/css/elusive-ie7-codes.css +272 -0
  61. data/vendor/assets/fonts/elusive/css/elusive-ie7.css +283 -0
  62. data/vendor/assets/fonts/elusive/css/elusive.css +323 -0
  63. data/vendor/assets/fonts/elusive/font/elusive.eot +0 -0
  64. data/vendor/assets/fonts/elusive/font/elusive.svg +282 -0
  65. data/vendor/assets/fonts/elusive/font/elusive.ttf +0 -0
  66. data/vendor/assets/fonts/elusive/font/elusive.woff +0 -0
  67. data/vendor/assets/fonts/elusive/index.html +0 -0
  68. data/vendor/assets/fonts/fontawesome/css/font-awesome.css +1681 -0
  69. data/vendor/assets/fonts/fontawesome/css/font-awesome.min.css +4 -0
  70. data/vendor/assets/fonts/fontawesome/fonts/FontAwesome.otf +0 -0
  71. data/vendor/assets/fonts/fontawesome/fonts/fontawesome-webfont.eot +0 -0
  72. data/vendor/assets/fonts/fontawesome/fonts/fontawesome-webfont.svg +520 -0
  73. data/vendor/assets/fonts/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
  74. data/vendor/assets/fonts/fontawesome/fonts/fontawesome-webfont.woff +0 -0
  75. data/vendor/assets/fonts/fontawesome/index.html +0 -0
  76. data/vendor/assets/fonts/glyphicons/glyphicons-halflings-regular.eot +0 -0
  77. data/vendor/assets/fonts/glyphicons/glyphicons-halflings-regular.svg +229 -0
  78. data/vendor/assets/fonts/glyphicons/glyphicons-halflings-regular.ttf +0 -0
  79. data/vendor/assets/fonts/glyphicons/glyphicons-halflings-regular.woff +0 -0
  80. data/vendor/assets/fonts/glyphicons/index.html +0 -0
  81. data/vendor/assets/fonts/linecons/css/animation.css +85 -0
  82. data/vendor/assets/fonts/linecons/css/linecons-codes.css +49 -0
  83. data/vendor/assets/fonts/linecons/css/linecons-embedded.css +102 -0
  84. data/vendor/assets/fonts/linecons/css/linecons-ie7-codes.css +49 -0
  85. data/vendor/assets/fonts/linecons/css/linecons-ie7.css +60 -0
  86. data/vendor/assets/fonts/linecons/css/linecons.css +100 -0
  87. data/vendor/assets/fonts/linecons/font/linecons.eot +0 -0
  88. data/vendor/assets/fonts/linecons/font/linecons.svg +59 -0
  89. data/vendor/assets/fonts/linecons/font/linecons.ttf +0 -0
  90. data/vendor/assets/fonts/linecons/font/linecons.woff +0 -0
  91. data/vendor/assets/fonts/linecons/index.html +0 -0
  92. data/vendor/assets/fonts/meteocons/css/animation.css +85 -0
  93. data/vendor/assets/fonts/meteocons/css/meteocons-codes.css +48 -0
  94. data/vendor/assets/fonts/meteocons/css/meteocons-embedded.css +101 -0
  95. data/vendor/assets/fonts/meteocons/css/meteocons-ie7-codes.css +48 -0
  96. data/vendor/assets/fonts/meteocons/css/meteocons-ie7.css +59 -0
  97. data/vendor/assets/fonts/meteocons/css/meteocons.css +99 -0
  98. data/vendor/assets/fonts/meteocons/font/meteocons.eot +0 -0
  99. data/vendor/assets/fonts/meteocons/font/meteocons.svg +58 -0
  100. data/vendor/assets/fonts/meteocons/font/meteocons.ttf +0 -0
  101. data/vendor/assets/fonts/meteocons/font/meteocons.woff +0 -0
  102. data/vendor/assets/fonts/meteocons/index.html +0 -0
  103. data/vendor/assets/images/flags/flag-al.png +0 -0
  104. data/vendor/assets/images/flags/flag-br.png +0 -0
  105. data/vendor/assets/images/flags/flag-de.png +0 -0
  106. data/vendor/assets/images/flags/flag-es.png +0 -0
  107. data/vendor/assets/images/flags/flag-fr.png +0 -0
  108. data/vendor/assets/images/flags/flag-uk.png +0 -0
  109. data/vendor/assets/images/flags/index.html +0 -0
  110. data/vendor/assets/javascripts/TweenLite.min.js +12 -0
  111. data/vendor/assets/javascripts/TweenMax.min.js +17 -0
  112. data/vendor/assets/javascripts/bootstrap.min.js +7 -0
  113. data/vendor/assets/javascripts/ckeditor/CHANGES.md +643 -0
  114. data/vendor/assets/javascripts/ckeditor/LICENSE.md +1264 -0
  115. data/vendor/assets/javascripts/ckeditor/README.md +39 -0
  116. data/vendor/assets/javascripts/ckeditor/adapters/jquery.js +10 -0
  117. data/vendor/assets/javascripts/ckeditor/build-config.js +152 -0
  118. data/vendor/assets/javascripts/ckeditor/ckeditor.js +936 -0
  119. data/vendor/assets/javascripts/ckeditor/config.js +42 -0
  120. data/vendor/assets/javascripts/ckeditor/contents.css +134 -0
  121. data/vendor/assets/javascripts/ckeditor/index.html +0 -0
  122. data/vendor/assets/javascripts/ckeditor/lang/af.js +5 -0
  123. data/vendor/assets/javascripts/ckeditor/lang/ar.js +5 -0
  124. data/vendor/assets/javascripts/ckeditor/lang/bg.js +5 -0
  125. data/vendor/assets/javascripts/ckeditor/lang/bn.js +5 -0
  126. data/vendor/assets/javascripts/ckeditor/lang/bs.js +5 -0
  127. data/vendor/assets/javascripts/ckeditor/lang/ca.js +5 -0
  128. data/vendor/assets/javascripts/ckeditor/lang/cs.js +5 -0
  129. data/vendor/assets/javascripts/ckeditor/lang/cy.js +5 -0
  130. data/vendor/assets/javascripts/ckeditor/lang/da.js +5 -0
  131. data/vendor/assets/javascripts/ckeditor/lang/de.js +5 -0
  132. data/vendor/assets/javascripts/ckeditor/lang/el.js +5 -0
  133. data/vendor/assets/javascripts/ckeditor/lang/en-au.js +5 -0
  134. data/vendor/assets/javascripts/ckeditor/lang/en-ca.js +5 -0
  135. data/vendor/assets/javascripts/ckeditor/lang/en-gb.js +5 -0
  136. data/vendor/assets/javascripts/ckeditor/lang/en.js +5 -0
  137. data/vendor/assets/javascripts/ckeditor/lang/eo.js +5 -0
  138. data/vendor/assets/javascripts/ckeditor/lang/es.js +5 -0
  139. data/vendor/assets/javascripts/ckeditor/lang/et.js +5 -0
  140. data/vendor/assets/javascripts/ckeditor/lang/eu.js +5 -0
  141. data/vendor/assets/javascripts/ckeditor/lang/fa.js +5 -0
  142. data/vendor/assets/javascripts/ckeditor/lang/fi.js +5 -0
  143. data/vendor/assets/javascripts/ckeditor/lang/fo.js +5 -0
  144. data/vendor/assets/javascripts/ckeditor/lang/fr-ca.js +5 -0
  145. data/vendor/assets/javascripts/ckeditor/lang/fr.js +5 -0
  146. data/vendor/assets/javascripts/ckeditor/lang/gl.js +5 -0
  147. data/vendor/assets/javascripts/ckeditor/lang/gu.js +5 -0
  148. data/vendor/assets/javascripts/ckeditor/lang/he.js +5 -0
  149. data/vendor/assets/javascripts/ckeditor/lang/hi.js +5 -0
  150. data/vendor/assets/javascripts/ckeditor/lang/hr.js +5 -0
  151. data/vendor/assets/javascripts/ckeditor/lang/hu.js +5 -0
  152. data/vendor/assets/javascripts/ckeditor/lang/id.js +5 -0
  153. data/vendor/assets/javascripts/ckeditor/lang/is.js +5 -0
  154. data/vendor/assets/javascripts/ckeditor/lang/it.js +5 -0
  155. data/vendor/assets/javascripts/ckeditor/lang/ja.js +5 -0
  156. data/vendor/assets/javascripts/ckeditor/lang/ka.js +5 -0
  157. data/vendor/assets/javascripts/ckeditor/lang/km.js +5 -0
  158. data/vendor/assets/javascripts/ckeditor/lang/ko.js +5 -0
  159. data/vendor/assets/javascripts/ckeditor/lang/ku.js +5 -0
  160. data/vendor/assets/javascripts/ckeditor/lang/lt.js +5 -0
  161. data/vendor/assets/javascripts/ckeditor/lang/lv.js +5 -0
  162. data/vendor/assets/javascripts/ckeditor/lang/mk.js +5 -0
  163. data/vendor/assets/javascripts/ckeditor/lang/mn.js +5 -0
  164. data/vendor/assets/javascripts/ckeditor/lang/ms.js +5 -0
  165. data/vendor/assets/javascripts/ckeditor/lang/nb.js +5 -0
  166. data/vendor/assets/javascripts/ckeditor/lang/nl.js +5 -0
  167. data/vendor/assets/javascripts/ckeditor/lang/no.js +5 -0
  168. data/vendor/assets/javascripts/ckeditor/lang/pl.js +5 -0
  169. data/vendor/assets/javascripts/ckeditor/lang/pt-br.js +5 -0
  170. data/vendor/assets/javascripts/ckeditor/lang/pt.js +5 -0
  171. data/vendor/assets/javascripts/ckeditor/lang/ro.js +5 -0
  172. data/vendor/assets/javascripts/ckeditor/lang/ru.js +5 -0
  173. data/vendor/assets/javascripts/ckeditor/lang/si.js +5 -0
  174. data/vendor/assets/javascripts/ckeditor/lang/sk.js +5 -0
  175. data/vendor/assets/javascripts/ckeditor/lang/sl.js +5 -0
  176. data/vendor/assets/javascripts/ckeditor/lang/sq.js +5 -0
  177. data/vendor/assets/javascripts/ckeditor/lang/sr-latn.js +5 -0
  178. data/vendor/assets/javascripts/ckeditor/lang/sr.js +5 -0
  179. data/vendor/assets/javascripts/ckeditor/lang/sv.js +5 -0
  180. data/vendor/assets/javascripts/ckeditor/lang/th.js +5 -0
  181. data/vendor/assets/javascripts/ckeditor/lang/tr.js +5 -0
  182. data/vendor/assets/javascripts/ckeditor/lang/tt.js +5 -0
  183. data/vendor/assets/javascripts/ckeditor/lang/ug.js +5 -0
  184. data/vendor/assets/javascripts/ckeditor/lang/uk.js +5 -0
  185. data/vendor/assets/javascripts/ckeditor/lang/vi.js +5 -0
  186. data/vendor/assets/javascripts/ckeditor/lang/zh-cn.js +5 -0
  187. data/vendor/assets/javascripts/ckeditor/lang/zh.js +5 -0
  188. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
  189. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  190. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +11 -0
  191. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +11 -0
  192. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +13 -0
  193. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +13 -0
  194. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +11 -0
  195. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +11 -0
  196. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +12 -0
  197. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +13 -0
  198. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en-gb.js +11 -0
  199. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +11 -0
  200. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +13 -0
  201. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +12 -0
  202. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +11 -0
  203. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +11 -0
  204. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +12 -0
  205. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fr-ca.js +12 -0
  206. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +13 -0
  207. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/gl.js +12 -0
  208. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +11 -0
  209. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +11 -0
  210. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +11 -0
  211. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +11 -0
  212. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +13 -0
  213. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/id.js +11 -0
  214. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +13 -0
  215. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
  216. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +11 -0
  217. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ko.js +10 -0
  218. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +12 -0
  219. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +11 -0
  220. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +13 -0
  221. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +11 -0
  222. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +11 -0
  223. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +12 -0
  224. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +12 -0
  225. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +11 -0
  226. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +13 -0
  227. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +12 -0
  228. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +12 -0
  229. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +12 -0
  230. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +11 -0
  231. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/si.js +10 -0
  232. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +12 -0
  233. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +12 -0
  234. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sq.js +11 -0
  235. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sr-latn.js +11 -0
  236. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sr.js +11 -0
  237. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +12 -0
  238. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +11 -0
  239. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +12 -0
  240. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tt.js +11 -0
  241. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +11 -0
  242. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +12 -0
  243. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +11 -0
  244. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +9 -0
  245. data/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/zh.js +9 -0
  246. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +7 -0
  247. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  248. data/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  249. data/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
  250. data/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  251. data/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
  252. data/vendor/assets/javascripts/ckeditor/plugins/icons_hidpi.png +0 -0
  253. data/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +43 -0
  254. data/vendor/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
  255. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +7 -0
  256. data/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +26 -0
  257. data/vendor/assets/javascripts/ckeditor/plugins/link/images/anchor.png +0 -0
  258. data/vendor/assets/javascripts/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  259. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/hidpi/icon-rtl.png +0 -0
  260. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/hidpi/icon.png +0 -0
  261. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon-rtl.png +0 -0
  262. data/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon.png +0 -0
  263. data/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +31 -0
  264. data/vendor/assets/javascripts/ckeditor/plugins/scayt/LICENSE.md +28 -0
  265. data/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +25 -0
  266. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +17 -0
  267. data/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  268. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  269. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ar.js +13 -0
  270. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/bg.js +13 -0
  271. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ca.js +14 -0
  272. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  273. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  274. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  275. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  276. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en-gb.js +13 -0
  277. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  278. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  279. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/es.js +13 -0
  280. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  281. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
  282. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  283. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr-ca.js +10 -0
  284. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  285. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/gl.js +13 -0
  286. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/he.js +12 -0
  287. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  288. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/hu.js +12 -0
  289. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/id.js +13 -0
  290. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  291. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ja.js +9 -0
  292. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/km.js +13 -0
  293. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
  294. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  295. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  296. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  297. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  298. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  299. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  300. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pt.js +13 -0
  301. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ru.js +13 -0
  302. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/si.js +13 -0
  303. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  304. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sl.js +12 -0
  305. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sq.js +13 -0
  306. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  307. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  308. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  309. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tt.js +13 -0
  310. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  311. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/uk.js +12 -0
  312. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/vi.js +14 -0
  313. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  314. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/zh.js +12 -0
  315. data/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
  316. data/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +21 -0
  317. data/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +17 -0
  318. data/vendor/assets/javascripts/ckeditor/plugins/wsc/LICENSE.md +28 -0
  319. data/vendor/assets/javascripts/ckeditor/plugins/wsc/README.md +25 -0
  320. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +66 -0
  321. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  322. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
  323. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +74 -0
  324. data/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc_ie.js +11 -0
  325. data/vendor/assets/javascripts/ckeditor/samples/ajax.html +82 -0
  326. data/vendor/assets/javascripts/ckeditor/samples/api.html +207 -0
  327. data/vendor/assets/javascripts/ckeditor/samples/appendto.html +56 -0
  328. data/vendor/assets/javascripts/ckeditor/samples/assets/inlineall/logo.png +0 -0
  329. data/vendor/assets/javascripts/ckeditor/samples/assets/outputxhtml/outputxhtml.css +204 -0
  330. data/vendor/assets/javascripts/ckeditor/samples/assets/posteddata.php +59 -0
  331. data/vendor/assets/javascripts/ckeditor/samples/assets/sample.jpg +0 -0
  332. data/vendor/assets/javascripts/ckeditor/samples/assets/uilanguages/languages.js +7 -0
  333. data/vendor/assets/javascripts/ckeditor/samples/datafiltering.html +401 -0
  334. data/vendor/assets/javascripts/ckeditor/samples/divreplace.html +141 -0
  335. data/vendor/assets/javascripts/ckeditor/samples/index.html +128 -0
  336. data/vendor/assets/javascripts/ckeditor/samples/inlineall.html +311 -0
  337. data/vendor/assets/javascripts/ckeditor/samples/inlinebycode.html +121 -0
  338. data/vendor/assets/javascripts/ckeditor/samples/inlinetextarea.html +110 -0
  339. data/vendor/assets/javascripts/ckeditor/samples/jquery.html +100 -0
  340. data/vendor/assets/javascripts/ckeditor/samples/plugins/dialog/assets/my_dialog.js +48 -0
  341. data/vendor/assets/javascripts/ckeditor/samples/plugins/dialog/dialog.html +187 -0
  342. data/vendor/assets/javascripts/ckeditor/samples/plugins/enterkey/enterkey.html +103 -0
  343. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla +0 -0
  344. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf +0 -0
  345. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/swfobject.js +18 -0
  346. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/outputforflash.html +280 -0
  347. data/vendor/assets/javascripts/ckeditor/samples/plugins/htmlwriter/outputhtml.html +221 -0
  348. data/vendor/assets/javascripts/ckeditor/samples/plugins/magicline/magicline.html +206 -0
  349. data/vendor/assets/javascripts/ckeditor/samples/plugins/toolbar/toolbar.html +232 -0
  350. data/vendor/assets/javascripts/ckeditor/samples/plugins/wysiwygarea/fullpage.html +77 -0
  351. data/vendor/assets/javascripts/ckeditor/samples/readonly.html +73 -0
  352. data/vendor/assets/javascripts/ckeditor/samples/replacebyclass.html +57 -0
  353. data/vendor/assets/javascripts/ckeditor/samples/replacebycode.html +56 -0
  354. data/vendor/assets/javascripts/ckeditor/samples/sample.css +365 -0
  355. data/vendor/assets/javascripts/ckeditor/samples/sample.js +50 -0
  356. data/vendor/assets/javascripts/ckeditor/samples/sample_posteddata.php +16 -0
  357. data/vendor/assets/javascripts/ckeditor/samples/tabindex.html +75 -0
  358. data/vendor/assets/javascripts/ckeditor/samples/uicolor.html +69 -0
  359. data/vendor/assets/javascripts/ckeditor/samples/uilanguages.html +119 -0
  360. data/vendor/assets/javascripts/ckeditor/samples/xhtmlstyle.html +231 -0
  361. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dev/icons16.svg +683 -0
  362. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dev/icons32.svg +694 -0
  363. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dev/locations.json +140 -0
  364. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog.css +1 -0
  365. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog_ie.css +1 -0
  366. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog_ie7.css +1 -0
  367. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog_ie8.css +1 -0
  368. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog_iequirks.css +1 -0
  369. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/dialog_opera.css +1 -0
  370. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor.css +1 -0
  371. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor_gecko.css +1 -0
  372. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor_ie.css +1 -0
  373. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor_ie7.css +1 -0
  374. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor_ie8.css +1 -0
  375. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/editor_iequirks.css +1 -0
  376. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/icons.png +0 -0
  377. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/icons_hidpi.png +0 -0
  378. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/arrow.png +0 -0
  379. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/close.png +0 -0
  380. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/hidpi/close.png +0 -0
  381. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/hidpi/lock-open.png +0 -0
  382. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/hidpi/lock.png +0 -0
  383. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/hidpi/refresh.png +0 -0
  384. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/lock-open.png +0 -0
  385. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/lock.png +0 -0
  386. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/images/refresh.png +0 -0
  387. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/readme.md +35 -0
  388. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/sample/bootstrapck-sample.html +127 -0
  389. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/sample/css/bootstrapck-sample.css +1 -0
  390. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/sample/js/analytics.js +4 -0
  391. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/sample/js/jquery-1.11.0.min.js +189 -0
  392. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/gecko/editor_gecko.scss +25 -0
  393. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie/dialog_ie.scss +62 -0
  394. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie/editor_ie.scss +71 -0
  395. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/dialog_ie7.scss +68 -0
  396. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/editor_ie7.scss +213 -0
  397. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/dialog_ie8.scss +24 -0
  398. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/editor_ie8.scss +27 -0
  399. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/dialog_iequirks.scss +21 -0
  400. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/editor_iequirks.scss +79 -0
  401. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/browser-specific/opera/dialog_opera.scss +31 -0
  402. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_colorpanel.scss +119 -0
  403. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_elementspath.scss +66 -0
  404. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_mainui.scss +189 -0
  405. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_menu.scss +182 -0
  406. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_panel.scss +199 -0
  407. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_presets.scss +32 -0
  408. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_reset.scss +107 -0
  409. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_richcombo.scss +174 -0
  410. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/_toolbar.scss +317 -0
  411. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/components/editor.scss +66 -0
  412. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/config/_colors.scss +61 -0
  413. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/config/_config.scss +9 -0
  414. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/config/_defaults.scss +37 -0
  415. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/scss/dialog/dialog.scss +822 -0
  416. data/vendor/assets/javascripts/ckeditor/skins/bootstrapck/skin.js +10 -0
  417. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog.css +5 -0
  418. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie.css +5 -0
  419. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie7.css +5 -0
  420. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_ie8.css +5 -0
  421. data/vendor/assets/javascripts/ckeditor/skins/moono/dialog_iequirks.css +5 -0
  422. data/vendor/assets/javascripts/ckeditor/skins/moono/editor.css +5 -0
  423. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_gecko.css +5 -0
  424. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie.css +5 -0
  425. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie7.css +5 -0
  426. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_ie8.css +5 -0
  427. data/vendor/assets/javascripts/ckeditor/skins/moono/editor_iequirks.css +5 -0
  428. data/vendor/assets/javascripts/ckeditor/skins/moono/icons.png +0 -0
  429. data/vendor/assets/javascripts/ckeditor/skins/moono/icons_hidpi.png +0 -0
  430. data/vendor/assets/javascripts/ckeditor/skins/moono/images/arrow.png +0 -0
  431. data/vendor/assets/javascripts/ckeditor/skins/moono/images/close.png +0 -0
  432. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/close.png +0 -0
  433. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/lock-open.png +0 -0
  434. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/lock.png +0 -0
  435. data/vendor/assets/javascripts/ckeditor/skins/moono/images/hidpi/refresh.png +0 -0
  436. data/vendor/assets/javascripts/ckeditor/skins/moono/images/lock-open.png +0 -0
  437. data/vendor/assets/javascripts/ckeditor/skins/moono/images/lock.png +0 -0
  438. data/vendor/assets/javascripts/ckeditor/skins/moono/images/refresh.png +0 -0
  439. data/vendor/assets/javascripts/ckeditor/skins/moono/readme.md +51 -0
  440. data/vendor/assets/javascripts/ckeditor/styles.js +111 -0
  441. data/vendor/assets/javascripts/colorpicker/bootstrap-colorpicker.min.js +1 -0
  442. data/vendor/assets/javascripts/colorpicker/images/alpha-horizontal.png +0 -0
  443. data/vendor/assets/javascripts/colorpicker/images/alpha.png +0 -0
  444. data/vendor/assets/javascripts/colorpicker/images/hue-horizontal.png +0 -0
  445. data/vendor/assets/javascripts/colorpicker/images/hue.png +0 -0
  446. data/vendor/assets/javascripts/colorpicker/images/saturation.png +0 -0
  447. data/vendor/assets/javascripts/colorpicker/index.html +0 -0
  448. data/vendor/assets/javascripts/cropper/cropper.css +266 -0
  449. data/vendor/assets/javascripts/cropper/cropper.js +1063 -0
  450. data/vendor/assets/javascripts/cropper/cropper.min.css +9 -0
  451. data/vendor/assets/javascripts/cropper/cropper.min.js +9 -0
  452. data/vendor/assets/javascripts/cropper/index.html +0 -0
  453. data/vendor/assets/javascripts/datatables/css/jquery.dataTables.css +476 -0
  454. data/vendor/assets/javascripts/datatables/css/jquery.dataTables.min.css +1 -0
  455. data/vendor/assets/javascripts/datatables/css/jquery.dataTables_themeroller.css +330 -0
  456. data/vendor/assets/javascripts/datatables/dataTables.bootstrap.css +281 -0
  457. data/vendor/assets/javascripts/datatables/dataTables.bootstrap.js +186 -0
  458. data/vendor/assets/javascripts/datatables/datatables-angular.js +2651 -0
  459. data/vendor/assets/javascripts/datatables/images/Sorting icons.psd +0 -0
  460. data/vendor/assets/javascripts/datatables/images/back_disabled.png +0 -0
  461. data/vendor/assets/javascripts/datatables/images/back_enabled.png +0 -0
  462. data/vendor/assets/javascripts/datatables/images/back_enabled_hover.png +0 -0
  463. data/vendor/assets/javascripts/datatables/images/favicon.ico +0 -0
  464. data/vendor/assets/javascripts/datatables/images/forward_disabled.png +0 -0
  465. data/vendor/assets/javascripts/datatables/images/forward_enabled.png +0 -0
  466. data/vendor/assets/javascripts/datatables/images/forward_enabled_hover.png +0 -0
  467. data/vendor/assets/javascripts/datatables/images/sort_asc.png +0 -0
  468. data/vendor/assets/javascripts/datatables/images/sort_asc_disabled.png +0 -0
  469. data/vendor/assets/javascripts/datatables/images/sort_both.png +0 -0
  470. data/vendor/assets/javascripts/datatables/images/sort_desc.png +0 -0
  471. data/vendor/assets/javascripts/datatables/images/sort_desc_disabled.png +0 -0
  472. data/vendor/assets/javascripts/datatables/index.html +0 -0
  473. data/vendor/assets/javascripts/datatables/js/jquery.dataTables.js +14624 -0
  474. data/vendor/assets/javascripts/datatables/js/jquery.dataTables.min.js +155 -0
  475. data/vendor/assets/javascripts/datatables/js/jquery.js +4 -0
  476. data/vendor/assets/javascripts/datatables/tabletools/copy_csv_xls.swf +0 -0
  477. data/vendor/assets/javascripts/datatables/tabletools/copy_csv_xls_pdf.swf +0 -0
  478. data/vendor/assets/javascripts/datatables/tabletools/dataTables.tableTools.css +361 -0
  479. data/vendor/assets/javascripts/datatables/tabletools/dataTables.tableTools.min.js +69 -0
  480. data/vendor/assets/javascripts/datatables/yadcf/jquery.dataTables.yadcf.css +116 -0
  481. data/vendor/assets/javascripts/datatables/yadcf/jquery.dataTables.yadcf.js +2235 -0
  482. data/vendor/assets/javascripts/datepicker/bootstrap-datepicker.js +1395 -0
  483. data/vendor/assets/javascripts/datepicker/index.html +0 -0
  484. data/vendor/assets/javascripts/daterangepicker/daterangepicker-bs2.css +256 -0
  485. data/vendor/assets/javascripts/daterangepicker/daterangepicker-bs3.css +288 -0
  486. data/vendor/assets/javascripts/daterangepicker/daterangepicker.js +1118 -0
  487. data/vendor/assets/javascripts/daterangepicker/index.html +0 -0
  488. data/vendor/assets/javascripts/devexpress-web-14.1/js/dx.chartjs.js +12 -0
  489. data/vendor/assets/javascripts/devexpress-web-14.1/js/globalize.min.js +12 -0
  490. data/vendor/assets/javascripts/devexpress-web-14.1/js/knockout-3.1.0.js +12 -0
  491. data/vendor/assets/javascripts/dropzone/css/basic.css +155 -0
  492. data/vendor/assets/javascripts/dropzone/css/dropzone.css +397 -0
  493. data/vendor/assets/javascripts/dropzone/css/stylus/basic.styl +165 -0
  494. data/vendor/assets/javascripts/dropzone/css/stylus/dropzone.styl +180 -0
  495. data/vendor/assets/javascripts/dropzone/dropzone-amd-module.min.js +1 -0
  496. data/vendor/assets/javascripts/dropzone/dropzone.min.js +1 -0
  497. data/vendor/assets/javascripts/dropzone/images/spritemap.png +0 -0
  498. data/vendor/assets/javascripts/dropzone/images/spritemap@2x.png +0 -0
  499. data/vendor/assets/javascripts/dropzone/index.html +0 -0
  500. data/vendor/assets/javascripts/formwizard/index.html +0 -0
  501. data/vendor/assets/javascripts/formwizard/jquery.bootstrap.wizard.js +331 -0
  502. data/vendor/assets/javascripts/formwizard/jquery.bootstrap.wizard.min.js +22 -0
  503. data/vendor/assets/javascripts/fullcalendar/fullcalendar.css +933 -0
  504. data/vendor/assets/javascripts/fullcalendar/fullcalendar.js +8391 -0
  505. data/vendor/assets/javascripts/fullcalendar/fullcalendar.min.css +5 -0
  506. data/vendor/assets/javascripts/fullcalendar/fullcalendar.min.js +8 -0
  507. data/vendor/assets/javascripts/fullcalendar/fullcalendar.print.css +201 -0
  508. data/vendor/assets/javascripts/fullcalendar/index.html +0 -0
  509. data/vendor/assets/javascripts/fullcalendar/moment.min.js +6 -0
  510. data/vendor/assets/javascripts/handlebars.min.js +28 -0
  511. data/vendor/assets/javascripts/icheck/icheck.min.js +11 -0
  512. data/vendor/assets/javascripts/icheck/index.html +0 -0
  513. data/vendor/assets/javascripts/icheck/skins/all.css +61 -0
  514. data/vendor/assets/javascripts/icheck/skins/flat/_all.css +530 -0
  515. data/vendor/assets/javascripts/icheck/skins/flat/aero.css +53 -0
  516. data/vendor/assets/javascripts/icheck/skins/flat/aero.png +0 -0
  517. data/vendor/assets/javascripts/icheck/skins/flat/aero@2x.png +0 -0
  518. data/vendor/assets/javascripts/icheck/skins/flat/blue.css +53 -0
  519. data/vendor/assets/javascripts/icheck/skins/flat/blue.png +0 -0
  520. data/vendor/assets/javascripts/icheck/skins/flat/blue@2x.png +0 -0
  521. data/vendor/assets/javascripts/icheck/skins/flat/flat.css +53 -0
  522. data/vendor/assets/javascripts/icheck/skins/flat/flat.png +0 -0
  523. data/vendor/assets/javascripts/icheck/skins/flat/flat@2x.png +0 -0
  524. data/vendor/assets/javascripts/icheck/skins/flat/green.css +53 -0
  525. data/vendor/assets/javascripts/icheck/skins/flat/green.png +0 -0
  526. data/vendor/assets/javascripts/icheck/skins/flat/green@2x.png +0 -0
  527. data/vendor/assets/javascripts/icheck/skins/flat/grey.css +53 -0
  528. data/vendor/assets/javascripts/icheck/skins/flat/grey.png +0 -0
  529. data/vendor/assets/javascripts/icheck/skins/flat/grey@2x.png +0 -0
  530. data/vendor/assets/javascripts/icheck/skins/flat/orange.css +53 -0
  531. data/vendor/assets/javascripts/icheck/skins/flat/orange.png +0 -0
  532. data/vendor/assets/javascripts/icheck/skins/flat/orange@2x.png +0 -0
  533. data/vendor/assets/javascripts/icheck/skins/flat/pink.css +53 -0
  534. data/vendor/assets/javascripts/icheck/skins/flat/pink.png +0 -0
  535. data/vendor/assets/javascripts/icheck/skins/flat/pink@2x.png +0 -0
  536. data/vendor/assets/javascripts/icheck/skins/flat/purple.css +53 -0
  537. data/vendor/assets/javascripts/icheck/skins/flat/purple.png +0 -0
  538. data/vendor/assets/javascripts/icheck/skins/flat/purple@2x.png +0 -0
  539. data/vendor/assets/javascripts/icheck/skins/flat/red.css +53 -0
  540. data/vendor/assets/javascripts/icheck/skins/flat/red.png +0 -0
  541. data/vendor/assets/javascripts/icheck/skins/flat/red@2x.png +0 -0
  542. data/vendor/assets/javascripts/icheck/skins/flat/yellow.css +53 -0
  543. data/vendor/assets/javascripts/icheck/skins/flat/yellow.png +0 -0
  544. data/vendor/assets/javascripts/icheck/skins/flat/yellow@2x.png +0 -0
  545. data/vendor/assets/javascripts/icheck/skins/futurico/futurico.css +53 -0
  546. data/vendor/assets/javascripts/icheck/skins/futurico/futurico.png +0 -0
  547. data/vendor/assets/javascripts/icheck/skins/futurico/futurico@2x.png +0 -0
  548. data/vendor/assets/javascripts/icheck/skins/line/_all.css +710 -0
  549. data/vendor/assets/javascripts/icheck/skins/line/aero.css +71 -0
  550. data/vendor/assets/javascripts/icheck/skins/line/blue.css +71 -0
  551. data/vendor/assets/javascripts/icheck/skins/line/green.css +71 -0
  552. data/vendor/assets/javascripts/icheck/skins/line/grey.css +71 -0
  553. data/vendor/assets/javascripts/icheck/skins/line/line.css +71 -0
  554. data/vendor/assets/javascripts/icheck/skins/line/line.png +0 -0
  555. data/vendor/assets/javascripts/icheck/skins/line/line@2x.png +0 -0
  556. data/vendor/assets/javascripts/icheck/skins/line/orange.css +71 -0
  557. data/vendor/assets/javascripts/icheck/skins/line/pink.css +71 -0
  558. data/vendor/assets/javascripts/icheck/skins/line/purple.css +71 -0
  559. data/vendor/assets/javascripts/icheck/skins/line/red.css +71 -0
  560. data/vendor/assets/javascripts/icheck/skins/line/yellow.css +71 -0
  561. data/vendor/assets/javascripts/icheck/skins/minimal/_all.css +590 -0
  562. data/vendor/assets/javascripts/icheck/skins/minimal/aero.css +59 -0
  563. data/vendor/assets/javascripts/icheck/skins/minimal/aero.png +0 -0
  564. data/vendor/assets/javascripts/icheck/skins/minimal/aero@2x.png +0 -0
  565. data/vendor/assets/javascripts/icheck/skins/minimal/blue.css +59 -0
  566. data/vendor/assets/javascripts/icheck/skins/minimal/blue.png +0 -0
  567. data/vendor/assets/javascripts/icheck/skins/minimal/blue@2x.png +0 -0
  568. data/vendor/assets/javascripts/icheck/skins/minimal/green.css +59 -0
  569. data/vendor/assets/javascripts/icheck/skins/minimal/green.png +0 -0
  570. data/vendor/assets/javascripts/icheck/skins/minimal/green@2x.png +0 -0
  571. data/vendor/assets/javascripts/icheck/skins/minimal/grey.css +59 -0
  572. data/vendor/assets/javascripts/icheck/skins/minimal/grey.png +0 -0
  573. data/vendor/assets/javascripts/icheck/skins/minimal/grey@2x.png +0 -0
  574. data/vendor/assets/javascripts/icheck/skins/minimal/minimal.css +59 -0
  575. data/vendor/assets/javascripts/icheck/skins/minimal/minimal.png +0 -0
  576. data/vendor/assets/javascripts/icheck/skins/minimal/minimal@2x.png +0 -0
  577. data/vendor/assets/javascripts/icheck/skins/minimal/orange.css +59 -0
  578. data/vendor/assets/javascripts/icheck/skins/minimal/orange.png +0 -0
  579. data/vendor/assets/javascripts/icheck/skins/minimal/orange@2x.png +0 -0
  580. data/vendor/assets/javascripts/icheck/skins/minimal/pink.css +59 -0
  581. data/vendor/assets/javascripts/icheck/skins/minimal/pink.png +0 -0
  582. data/vendor/assets/javascripts/icheck/skins/minimal/pink@2x.png +0 -0
  583. data/vendor/assets/javascripts/icheck/skins/minimal/purple.css +59 -0
  584. data/vendor/assets/javascripts/icheck/skins/minimal/purple.png +0 -0
  585. data/vendor/assets/javascripts/icheck/skins/minimal/purple@2x.png +0 -0
  586. data/vendor/assets/javascripts/icheck/skins/minimal/red.css +59 -0
  587. data/vendor/assets/javascripts/icheck/skins/minimal/red.png +0 -0
  588. data/vendor/assets/javascripts/icheck/skins/minimal/red@2x.png +0 -0
  589. data/vendor/assets/javascripts/icheck/skins/minimal/yellow.css +59 -0
  590. data/vendor/assets/javascripts/icheck/skins/minimal/yellow.png +0 -0
  591. data/vendor/assets/javascripts/icheck/skins/minimal/yellow@2x.png +0 -0
  592. data/vendor/assets/javascripts/icheck/skins/polaris/polaris.css +59 -0
  593. data/vendor/assets/javascripts/icheck/skins/polaris/polaris.png +0 -0
  594. data/vendor/assets/javascripts/icheck/skins/polaris/polaris@2x.png +0 -0
  595. data/vendor/assets/javascripts/icheck/skins/square/_all.css +590 -0
  596. data/vendor/assets/javascripts/icheck/skins/square/aero.css +59 -0
  597. data/vendor/assets/javascripts/icheck/skins/square/aero.png +0 -0
  598. data/vendor/assets/javascripts/icheck/skins/square/aero@2x.png +0 -0
  599. data/vendor/assets/javascripts/icheck/skins/square/blue.css +59 -0
  600. data/vendor/assets/javascripts/icheck/skins/square/blue.png +0 -0
  601. data/vendor/assets/javascripts/icheck/skins/square/blue@2x.png +0 -0
  602. data/vendor/assets/javascripts/icheck/skins/square/green.css +59 -0
  603. data/vendor/assets/javascripts/icheck/skins/square/green.png +0 -0
  604. data/vendor/assets/javascripts/icheck/skins/square/green@2x.png +0 -0
  605. data/vendor/assets/javascripts/icheck/skins/square/grey.css +59 -0
  606. data/vendor/assets/javascripts/icheck/skins/square/grey.png +0 -0
  607. data/vendor/assets/javascripts/icheck/skins/square/grey@2x.png +0 -0
  608. data/vendor/assets/javascripts/icheck/skins/square/orange.css +59 -0
  609. data/vendor/assets/javascripts/icheck/skins/square/orange.png +0 -0
  610. data/vendor/assets/javascripts/icheck/skins/square/orange@2x.png +0 -0
  611. data/vendor/assets/javascripts/icheck/skins/square/pink.css +59 -0
  612. data/vendor/assets/javascripts/icheck/skins/square/pink.png +0 -0
  613. data/vendor/assets/javascripts/icheck/skins/square/pink@2x.png +0 -0
  614. data/vendor/assets/javascripts/icheck/skins/square/purple.css +59 -0
  615. data/vendor/assets/javascripts/icheck/skins/square/purple.png +0 -0
  616. data/vendor/assets/javascripts/icheck/skins/square/purple@2x.png +0 -0
  617. data/vendor/assets/javascripts/icheck/skins/square/red.css +59 -0
  618. data/vendor/assets/javascripts/icheck/skins/square/red.png +0 -0
  619. data/vendor/assets/javascripts/icheck/skins/square/red@2x.png +0 -0
  620. data/vendor/assets/javascripts/icheck/skins/square/square.css +59 -0
  621. data/vendor/assets/javascripts/icheck/skins/square/square.png +0 -0
  622. data/vendor/assets/javascripts/icheck/skins/square/square@2x.png +0 -0
  623. data/vendor/assets/javascripts/icheck/skins/square/yellow.css +59 -0
  624. data/vendor/assets/javascripts/icheck/skins/square/yellow.png +0 -0
  625. data/vendor/assets/javascripts/icheck/skins/square/yellow@2x.png +0 -0
  626. data/vendor/assets/javascripts/inputmask/index.html +0 -0
  627. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.date.extensions.js +8 -0
  628. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.extensions.js +8 -0
  629. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.js +9 -0
  630. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.numeric.extensions.js +8 -0
  631. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.phone.extensions.js +8 -0
  632. data/vendor/assets/javascripts/inputmask/inputmask/jquery.inputmask.regex.extensions.js +8 -0
  633. data/vendor/assets/javascripts/inputmask/jquery.inputmask.bundle.js +9 -0
  634. data/vendor/assets/javascripts/joinable.js +45 -0
  635. data/vendor/assets/javascripts/jquery-1.11.1.min.js +4 -0
  636. data/vendor/assets/javascripts/jquery-ui/external/jquery/jquery.js +9789 -0
  637. data/vendor/assets/javascripts/jquery-ui/index.html +317 -0
  638. data/vendor/assets/javascripts/jquery-ui/jquery-ui.css +239 -0
  639. data/vendor/assets/javascripts/jquery-ui/jquery-ui.js +6343 -0
  640. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.css +6 -0
  641. data/vendor/assets/javascripts/jquery-ui/jquery-ui.min.js +9 -0
  642. data/vendor/assets/javascripts/jquery-ui/jquery-ui.structure.css +245 -0
  643. data/vendor/assets/javascripts/jquery-ui/jquery-ui.structure.min.css +5 -0
  644. data/vendor/assets/javascripts/jquery-validate/additional-methods.js +928 -0
  645. data/vendor/assets/javascripts/jquery-validate/additional-methods.min.js +4 -0
  646. data/vendor/assets/javascripts/jquery-validate/index.html +0 -0
  647. data/vendor/assets/javascripts/jquery-validate/jquery.validate.js +1357 -0
  648. data/vendor/assets/javascripts/jquery-validate/jquery.validate.min.js +4 -0
  649. data/vendor/assets/javascripts/jquery-validate/localization/messages_ar.js +33 -0
  650. data/vendor/assets/javascripts/jquery-validate/localization/messages_ar.min.js +4 -0
  651. data/vendor/assets/javascripts/jquery-validate/localization/messages_bg.js +33 -0
  652. data/vendor/assets/javascripts/jquery-validate/localization/messages_bg.min.js +4 -0
  653. data/vendor/assets/javascripts/jquery-validate/localization/messages_ca.js +33 -0
  654. data/vendor/assets/javascripts/jquery-validate/localization/messages_ca.min.js +4 -0
  655. data/vendor/assets/javascripts/jquery-validate/localization/messages_cs.js +33 -0
  656. data/vendor/assets/javascripts/jquery-validate/localization/messages_cs.min.js +4 -0
  657. data/vendor/assets/javascripts/jquery-validate/localization/messages_da.js +30 -0
  658. data/vendor/assets/javascripts/jquery-validate/localization/messages_da.min.js +4 -0
  659. data/vendor/assets/javascripts/jquery-validate/localization/messages_de.js +30 -0
  660. data/vendor/assets/javascripts/jquery-validate/localization/messages_de.min.js +4 -0
  661. data/vendor/assets/javascripts/jquery-validate/localization/messages_el.js +33 -0
  662. data/vendor/assets/javascripts/jquery-validate/localization/messages_el.min.js +4 -0
  663. data/vendor/assets/javascripts/jquery-validate/localization/messages_es.js +36 -0
  664. data/vendor/assets/javascripts/jquery-validate/localization/messages_es.min.js +4 -0
  665. data/vendor/assets/javascripts/jquery-validate/localization/messages_es_AR.js +37 -0
  666. data/vendor/assets/javascripts/jquery-validate/localization/messages_es_AR.min.js +4 -0
  667. data/vendor/assets/javascripts/jquery-validate/localization/messages_et.js +31 -0
  668. data/vendor/assets/javascripts/jquery-validate/localization/messages_et.min.js +4 -0
  669. data/vendor/assets/javascripts/jquery-validate/localization/messages_eu.js +33 -0
  670. data/vendor/assets/javascripts/jquery-validate/localization/messages_eu.min.js +4 -0
  671. data/vendor/assets/javascripts/jquery-validate/localization/messages_fa.js +36 -0
  672. data/vendor/assets/javascripts/jquery-validate/localization/messages_fa.min.js +4 -0
  673. data/vendor/assets/javascripts/jquery-validate/localization/messages_fi.js +31 -0
  674. data/vendor/assets/javascripts/jquery-validate/localization/messages_fi.min.js +4 -0
  675. data/vendor/assets/javascripts/jquery-validate/localization/messages_fr.js +59 -0
  676. data/vendor/assets/javascripts/jquery-validate/localization/messages_fr.min.js +4 -0
  677. data/vendor/assets/javascripts/jquery-validate/localization/messages_gl.js +38 -0
  678. data/vendor/assets/javascripts/jquery-validate/localization/messages_gl.min.js +4 -0
  679. data/vendor/assets/javascripts/jquery-validate/localization/messages_he.js +33 -0
  680. data/vendor/assets/javascripts/jquery-validate/localization/messages_he.min.js +4 -0
  681. data/vendor/assets/javascripts/jquery-validate/localization/messages_hr.js +33 -0
  682. data/vendor/assets/javascripts/jquery-validate/localization/messages_hr.min.js +4 -0
  683. data/vendor/assets/javascripts/jquery-validate/localization/messages_hu.js +32 -0
  684. data/vendor/assets/javascripts/jquery-validate/localization/messages_hu.min.js +4 -0
  685. data/vendor/assets/javascripts/jquery-validate/localization/messages_id.js +32 -0
  686. data/vendor/assets/javascripts/jquery-validate/localization/messages_id.min.js +4 -0
  687. data/vendor/assets/javascripts/jquery-validate/localization/messages_is.js +31 -0
  688. data/vendor/assets/javascripts/jquery-validate/localization/messages_is.min.js +4 -0
  689. data/vendor/assets/javascripts/jquery-validate/localization/messages_it.js +36 -0
  690. data/vendor/assets/javascripts/jquery-validate/localization/messages_it.min.js +4 -0
  691. data/vendor/assets/javascripts/jquery-validate/localization/messages_ja.js +33 -0
  692. data/vendor/assets/javascripts/jquery-validate/localization/messages_ja.min.js +4 -0
  693. data/vendor/assets/javascripts/jquery-validate/localization/messages_ka.js +33 -0
  694. data/vendor/assets/javascripts/jquery-validate/localization/messages_ka.min.js +4 -0
  695. data/vendor/assets/javascripts/jquery-validate/localization/messages_kk.js +33 -0
  696. data/vendor/assets/javascripts/jquery-validate/localization/messages_kk.min.js +4 -0
  697. data/vendor/assets/javascripts/jquery-validate/localization/messages_ko.js +33 -0
  698. data/vendor/assets/javascripts/jquery-validate/localization/messages_ko.min.js +4 -0
  699. data/vendor/assets/javascripts/jquery-validate/localization/messages_lt.js +33 -0
  700. data/vendor/assets/javascripts/jquery-validate/localization/messages_lt.min.js +4 -0
  701. data/vendor/assets/javascripts/jquery-validate/localization/messages_lv.js +33 -0
  702. data/vendor/assets/javascripts/jquery-validate/localization/messages_lv.min.js +4 -0
  703. data/vendor/assets/javascripts/jquery-validate/localization/messages_my.js +33 -0
  704. data/vendor/assets/javascripts/jquery-validate/localization/messages_my.min.js +4 -0
  705. data/vendor/assets/javascripts/jquery-validate/localization/messages_nl.js +43 -0
  706. data/vendor/assets/javascripts/jquery-validate/localization/messages_nl.min.js +4 -0
  707. data/vendor/assets/javascripts/jquery-validate/localization/messages_no.js +33 -0
  708. data/vendor/assets/javascripts/jquery-validate/localization/messages_no.min.js +4 -0
  709. data/vendor/assets/javascripts/jquery-validate/localization/messages_pl.js +33 -0
  710. data/vendor/assets/javascripts/jquery-validate/localization/messages_pl.min.js +4 -0
  711. data/vendor/assets/javascripts/jquery-validate/localization/messages_pt_BR.js +37 -0
  712. data/vendor/assets/javascripts/jquery-validate/localization/messages_pt_BR.min.js +4 -0
  713. data/vendor/assets/javascripts/jquery-validate/localization/messages_pt_PT.js +37 -0
  714. data/vendor/assets/javascripts/jquery-validate/localization/messages_pt_PT.min.js +4 -0
  715. data/vendor/assets/javascripts/jquery-validate/localization/messages_ro.js +33 -0
  716. data/vendor/assets/javascripts/jquery-validate/localization/messages_ro.min.js +4 -0
  717. data/vendor/assets/javascripts/jquery-validate/localization/messages_ru.js +33 -0
  718. data/vendor/assets/javascripts/jquery-validate/localization/messages_ru.min.js +4 -0
  719. data/vendor/assets/javascripts/jquery-validate/localization/messages_si.js +33 -0
  720. data/vendor/assets/javascripts/jquery-validate/localization/messages_si.min.js +4 -0
  721. data/vendor/assets/javascripts/jquery-validate/localization/messages_sk.js +30 -0
  722. data/vendor/assets/javascripts/jquery-validate/localization/messages_sk.min.js +4 -0
  723. data/vendor/assets/javascripts/jquery-validate/localization/messages_sl.js +33 -0
  724. data/vendor/assets/javascripts/jquery-validate/localization/messages_sl.min.js +4 -0
  725. data/vendor/assets/javascripts/jquery-validate/localization/messages_sr.js +33 -0
  726. data/vendor/assets/javascripts/jquery-validate/localization/messages_sr.min.js +4 -0
  727. data/vendor/assets/javascripts/jquery-validate/localization/messages_sr_lat.js +33 -0
  728. data/vendor/assets/javascripts/jquery-validate/localization/messages_sr_lat.min.js +4 -0
  729. data/vendor/assets/javascripts/jquery-validate/localization/messages_sv.js +31 -0
  730. data/vendor/assets/javascripts/jquery-validate/localization/messages_sv.min.js +4 -0
  731. data/vendor/assets/javascripts/jquery-validate/localization/messages_th.js +33 -0
  732. data/vendor/assets/javascripts/jquery-validate/localization/messages_th.min.js +4 -0
  733. data/vendor/assets/javascripts/jquery-validate/localization/messages_tj.js +33 -0
  734. data/vendor/assets/javascripts/jquery-validate/localization/messages_tj.min.js +4 -0
  735. data/vendor/assets/javascripts/jquery-validate/localization/messages_tr.js +33 -0
  736. data/vendor/assets/javascripts/jquery-validate/localization/messages_tr.min.js +4 -0
  737. data/vendor/assets/javascripts/jquery-validate/localization/messages_uk.js +33 -0
  738. data/vendor/assets/javascripts/jquery-validate/localization/messages_uk.min.js +4 -0
  739. data/vendor/assets/javascripts/jquery-validate/localization/messages_vi.js +33 -0
  740. data/vendor/assets/javascripts/jquery-validate/localization/messages_vi.min.js +4 -0
  741. data/vendor/assets/javascripts/jquery-validate/localization/messages_zh.js +33 -0
  742. data/vendor/assets/javascripts/jquery-validate/localization/messages_zh.min.js +4 -0
  743. data/vendor/assets/javascripts/jquery-validate/localization/messages_zh_TW.js +34 -0
  744. data/vendor/assets/javascripts/jquery-validate/localization/messages_zh_TW.min.js +4 -0
  745. data/vendor/assets/javascripts/jquery-validate/localization/methods_de.js +22 -0
  746. data/vendor/assets/javascripts/jquery-validate/localization/methods_de.min.js +4 -0
  747. data/vendor/assets/javascripts/jquery-validate/localization/methods_es_CL.js +22 -0
  748. data/vendor/assets/javascripts/jquery-validate/localization/methods_es_CL.min.js +4 -0
  749. data/vendor/assets/javascripts/jquery-validate/localization/methods_fi.js +22 -0
  750. data/vendor/assets/javascripts/jquery-validate/localization/methods_fi.min.js +4 -0
  751. data/vendor/assets/javascripts/jquery-validate/localization/methods_nl.js +19 -0
  752. data/vendor/assets/javascripts/jquery-validate/localization/methods_nl.min.js +4 -0
  753. data/vendor/assets/javascripts/jquery-validate/localization/methods_pt.js +19 -0
  754. data/vendor/assets/javascripts/jquery-validate/localization/methods_pt.min.js +4 -0
  755. data/vendor/assets/javascripts/jquery.mousewheel.js +201 -0
  756. data/vendor/assets/javascripts/jvectormap/index.html +0 -0
  757. data/vendor/assets/javascripts/jvectormap/jquery-jvectormap-1.1.1.css +37 -0
  758. data/vendor/assets/javascripts/jvectormap/jquery-jvectormap-1.1.1.min.js +7 -0
  759. data/vendor/assets/javascripts/jvectormap/jquery-jvectormap-1.2.2.css +37 -0
  760. data/vendor/assets/javascripts/jvectormap/jquery-jvectormap-1.2.2.min.js +8 -0
  761. data/vendor/assets/javascripts/jvectormap/regions/index.html +0 -0
  762. data/vendor/assets/javascripts/jvectormap/regions/jquery-jvectormap-it-mill-en.js +1 -0
  763. data/vendor/assets/javascripts/jvectormap/regions/jquery-jvectormap-world-mill-en.js +1 -0
  764. data/vendor/assets/javascripts/knob/index.html +0 -0
  765. data/vendor/assets/javascripts/knob/jquery.knob.min.js +1 -0
  766. data/vendor/assets/javascripts/min/bootstrap.min-min.js +2 -0
  767. data/vendor/assets/javascripts/min/resizeable-min.js +1 -0
  768. data/vendor/assets/javascripts/min/xenon-notes-min.js +1 -0
  769. data/vendor/assets/javascripts/min/xenon-toggles-min.js +1 -0
  770. data/vendor/assets/javascripts/moment.min.js +6 -0
  771. data/vendor/assets/javascripts/multiselect/css/index.html +0 -0
  772. data/vendor/assets/javascripts/multiselect/css/multi-select.css +93 -0
  773. data/vendor/assets/javascripts/multiselect/img/index.html +0 -0
  774. data/vendor/assets/javascripts/multiselect/img/switch.png +0 -0
  775. data/vendor/assets/javascripts/multiselect/index.html +0 -0
  776. data/vendor/assets/javascripts/multiselect/js/index.html +0 -0
  777. data/vendor/assets/javascripts/multiselect/js/jquery.multi-select.js +532 -0
  778. data/vendor/assets/javascripts/resizeable.js +122 -0
  779. data/vendor/assets/javascripts/rwd-table/css/rwd-table.css +306 -0
  780. data/vendor/assets/javascripts/rwd-table/css/rwd-table.min.css +7 -0
  781. data/vendor/assets/javascripts/rwd-table/index.html +0 -0
  782. data/vendor/assets/javascripts/rwd-table/js/rwd-table.js +674 -0
  783. data/vendor/assets/javascripts/rwd-table/js/rwd-table.min.js +7 -0
  784. data/vendor/assets/javascripts/select2/LICENSE +18 -0
  785. data/vendor/assets/javascripts/select2/index.html +0 -0
  786. data/vendor/assets/javascripts/select2/select2-bootstrap.css +87 -0
  787. data/vendor/assets/javascripts/select2/select2-spinner.gif +0 -0
  788. data/vendor/assets/javascripts/select2/select2.css +704 -0
  789. data/vendor/assets/javascripts/select2/select2.jquery.json +36 -0
  790. data/vendor/assets/javascripts/select2/select2.js +3508 -0
  791. data/vendor/assets/javascripts/select2/select2.min.js +23 -0
  792. data/vendor/assets/javascripts/select2/select2.png +0 -0
  793. data/vendor/assets/javascripts/select2/select2_locale_ar.js +19 -0
  794. data/vendor/assets/javascripts/select2/select2_locale_az.js +20 -0
  795. data/vendor/assets/javascripts/select2/select2_locale_bg.js +20 -0
  796. data/vendor/assets/javascripts/select2/select2_locale_ca.js +19 -0
  797. data/vendor/assets/javascripts/select2/select2_locale_cs.js +51 -0
  798. data/vendor/assets/javascripts/select2/select2_locale_da.js +19 -0
  799. data/vendor/assets/javascripts/select2/select2_locale_de.js +18 -0
  800. data/vendor/assets/javascripts/select2/select2_locale_el.js +19 -0
  801. data/vendor/assets/javascripts/select2/select2_locale_en.js.template +20 -0
  802. data/vendor/assets/javascripts/select2/select2_locale_es.js +17 -0
  803. data/vendor/assets/javascripts/select2/select2_locale_et.js +19 -0
  804. data/vendor/assets/javascripts/select2/select2_locale_eu.js +45 -0
  805. data/vendor/assets/javascripts/select2/select2_locale_fa.js +21 -0
  806. data/vendor/assets/javascripts/select2/select2_locale_fi.js +30 -0
  807. data/vendor/assets/javascripts/select2/select2_locale_fr.js +18 -0
  808. data/vendor/assets/javascripts/select2/select2_locale_gl.js +45 -0
  809. data/vendor/assets/javascripts/select2/select2_locale_he.js +19 -0
  810. data/vendor/assets/javascripts/select2/select2_locale_hr.js +24 -0
  811. data/vendor/assets/javascripts/select2/select2_locale_hu.js +17 -0
  812. data/vendor/assets/javascripts/select2/select2_locale_id.js +19 -0
  813. data/vendor/assets/javascripts/select2/select2_locale_is.js +17 -0
  814. data/vendor/assets/javascripts/select2/select2_locale_it.js +17 -0
  815. data/vendor/assets/javascripts/select2/select2_locale_ja.js +17 -0
  816. data/vendor/assets/javascripts/select2/select2_locale_ka.js +19 -0
  817. data/vendor/assets/javascripts/select2/select2_locale_ko.js +19 -0
  818. data/vendor/assets/javascripts/select2/select2_locale_lt.js +26 -0
  819. data/vendor/assets/javascripts/select2/select2_locale_lv.js +19 -0
  820. data/vendor/assets/javascripts/select2/select2_locale_mk.js +19 -0
  821. data/vendor/assets/javascripts/select2/select2_locale_ms.js +19 -0
  822. data/vendor/assets/javascripts/select2/select2_locale_nl.js +17 -0
  823. data/vendor/assets/javascripts/select2/select2_locale_no.js +20 -0
  824. data/vendor/assets/javascripts/select2/select2_locale_pl.js +25 -0
  825. data/vendor/assets/javascripts/select2/select2_locale_pt-BR.js +17 -0
  826. data/vendor/assets/javascripts/select2/select2_locale_pt-PT.js +17 -0
  827. data/vendor/assets/javascripts/select2/select2_locale_ro.js +17 -0
  828. data/vendor/assets/javascripts/select2/select2_locale_rs.js +19 -0
  829. data/vendor/assets/javascripts/select2/select2_locale_ru.js +23 -0
  830. data/vendor/assets/javascripts/select2/select2_locale_sk.js +50 -0
  831. data/vendor/assets/javascripts/select2/select2_locale_sv.js +19 -0
  832. data/vendor/assets/javascripts/select2/select2_locale_th.js +19 -0
  833. data/vendor/assets/javascripts/select2/select2_locale_tr.js +19 -0
  834. data/vendor/assets/javascripts/select2/select2_locale_ug-CN.js +16 -0
  835. data/vendor/assets/javascripts/select2/select2_locale_uk.js +25 -0
  836. data/vendor/assets/javascripts/select2/select2_locale_vi.js +20 -0
  837. data/vendor/assets/javascripts/select2/select2_locale_zh-CN.js +16 -0
  838. data/vendor/assets/javascripts/select2/select2_locale_zh-TW.js +16 -0
  839. data/vendor/assets/javascripts/select2/select2x2.png +0 -0
  840. data/vendor/assets/javascripts/selectboxit/index.html +0 -0
  841. data/vendor/assets/javascripts/selectboxit/jquery.selectBoxIt.css +278 -0
  842. data/vendor/assets/javascripts/selectboxit/jquery.selectBoxIt.js +3259 -0
  843. data/vendor/assets/javascripts/selectboxit/jquery.selectBoxIt.min.js +4 -0
  844. data/vendor/assets/javascripts/tagsinput/bootstrap-tagsinput.css +46 -0
  845. data/vendor/assets/javascripts/tagsinput/bootstrap-tagsinput.js +617 -0
  846. data/vendor/assets/javascripts/tagsinput/bootstrap-tagsinput.less +50 -0
  847. data/vendor/assets/javascripts/tagsinput/bootstrap-tagsinput.min.js +7 -0
  848. data/vendor/assets/javascripts/tagsinput/bootstrap-tagsinput.min.js.map +1 -0
  849. data/vendor/assets/javascripts/tagsinput/index.html +0 -0
  850. data/vendor/assets/javascripts/tagsinput/min/bootstrap-tagsinput.min-min.js +8 -0
  851. data/vendor/assets/javascripts/timepicker/bootstrap-timepicker.min.js +5 -0
  852. data/vendor/assets/javascripts/timepicker/index.html +0 -0
  853. data/vendor/assets/javascripts/toastr/index.html +0 -0
  854. data/vendor/assets/javascripts/toastr/toastr-icon.png +0 -0
  855. data/vendor/assets/javascripts/toastr/toastr.css +180 -0
  856. data/vendor/assets/javascripts/toastr/toastr.js +350 -0
  857. data/vendor/assets/javascripts/toastr/toastr.less +232 -0
  858. data/vendor/assets/javascripts/toastr/toastr.min.css +1 -0
  859. data/vendor/assets/javascripts/toastr/toastr.min.js +1 -0
  860. data/vendor/assets/javascripts/toastr/toastr.min.js.map +8 -0
  861. data/vendor/assets/javascripts/toastr/toastr.scss +183 -0
  862. data/vendor/assets/javascripts/tocify/index.html +0 -0
  863. data/vendor/assets/javascripts/tocify/jquery.tocify.css +62 -0
  864. data/vendor/assets/javascripts/tocify/jquery.tocify.min.js +4 -0
  865. data/vendor/assets/javascripts/typeahead.bundle.js +1782 -0
  866. data/vendor/assets/javascripts/uikit/css/addons/uikit.addons.css +1253 -0
  867. data/vendor/assets/javascripts/uikit/css/addons/uikit.addons.min.css +3 -0
  868. data/vendor/assets/javascripts/uikit/css/addons/uikit.almost-flat.addons.css +1334 -0
  869. data/vendor/assets/javascripts/uikit/css/addons/uikit.almost-flat.addons.min.css +3 -0
  870. data/vendor/assets/javascripts/uikit/css/addons/uikit.gradient.addons.css +1355 -0
  871. data/vendor/assets/javascripts/uikit/css/addons/uikit.gradient.addons.min.css +3 -0
  872. data/vendor/assets/javascripts/uikit/css/index.html +0 -0
  873. data/vendor/assets/javascripts/uikit/css/uikit.almost-flat.css +7273 -0
  874. data/vendor/assets/javascripts/uikit/css/uikit.almost-flat.min.css +3 -0
  875. data/vendor/assets/javascripts/uikit/css/uikit.css +1 -0
  876. data/vendor/assets/javascripts/uikit/css/uikit.gradient.css +7341 -0
  877. data/vendor/assets/javascripts/uikit/css/uikit.gradient.min.css +3 -0
  878. data/vendor/assets/javascripts/uikit/css/uikit.min.css +3 -0
  879. data/vendor/assets/javascripts/uikit/fonts/FontAwesome.otf +0 -0
  880. data/vendor/assets/javascripts/uikit/fonts/fontawesome-webfont.eot +0 -0
  881. data/vendor/assets/javascripts/uikit/fonts/fontawesome-webfont.ttf +0 -0
  882. data/vendor/assets/javascripts/uikit/fonts/fontawesome-webfont.woff +0 -0
  883. data/vendor/assets/javascripts/uikit/fonts/index.html +0 -0
  884. data/vendor/assets/javascripts/uikit/index.html +0 -0
  885. data/vendor/assets/javascripts/uikit/js/addons/autocomplete.js +305 -0
  886. data/vendor/assets/javascripts/uikit/js/addons/autocomplete.min.js +3 -0
  887. data/vendor/assets/javascripts/uikit/js/addons/cover.js +90 -0
  888. data/vendor/assets/javascripts/uikit/js/addons/cover.min.js +3 -0
  889. data/vendor/assets/javascripts/uikit/js/addons/datepicker.js +379 -0
  890. data/vendor/assets/javascripts/uikit/js/addons/datepicker.min.js +3 -0
  891. data/vendor/assets/javascripts/uikit/js/addons/form-password.js +62 -0
  892. data/vendor/assets/javascripts/uikit/js/addons/form-password.min.js +3 -0
  893. data/vendor/assets/javascripts/uikit/js/addons/form-select.js +62 -0
  894. data/vendor/assets/javascripts/uikit/js/addons/form-select.min.js +3 -0
  895. data/vendor/assets/javascripts/uikit/js/addons/htmleditor.js +615 -0
  896. data/vendor/assets/javascripts/uikit/js/addons/htmleditor.min.js +3 -0
  897. data/vendor/assets/javascripts/uikit/js/addons/nestable.js +575 -0
  898. data/vendor/assets/javascripts/uikit/js/addons/nestable.min.js +3 -0
  899. data/vendor/assets/javascripts/uikit/js/addons/notify.js +180 -0
  900. data/vendor/assets/javascripts/uikit/js/addons/notify.min.js +3 -0
  901. data/vendor/assets/javascripts/uikit/js/addons/pagination.js +146 -0
  902. data/vendor/assets/javascripts/uikit/js/addons/pagination.min.js +3 -0
  903. data/vendor/assets/javascripts/uikit/js/addons/search.js +90 -0
  904. data/vendor/assets/javascripts/uikit/js/addons/search.min.js +3 -0
  905. data/vendor/assets/javascripts/uikit/js/addons/sortable.js +520 -0
  906. data/vendor/assets/javascripts/uikit/js/addons/sortable.min.js +3 -0
  907. data/vendor/assets/javascripts/uikit/js/addons/sticky.js +240 -0
  908. data/vendor/assets/javascripts/uikit/js/addons/sticky.min.js +3 -0
  909. data/vendor/assets/javascripts/uikit/js/addons/timepicker.js +165 -0
  910. data/vendor/assets/javascripts/uikit/js/addons/timepicker.min.js +3 -0
  911. data/vendor/assets/javascripts/uikit/js/addons/upload.js +256 -0
  912. data/vendor/assets/javascripts/uikit/js/addons/upload.min.js +3 -0
  913. data/vendor/assets/javascripts/uikit/js/index.html +0 -0
  914. data/vendor/assets/javascripts/uikit/js/uikit.js +2592 -0
  915. data/vendor/assets/javascripts/uikit/js/uikit.min.js +4 -0
  916. data/vendor/assets/javascripts/uikit/less/addons/autocomplete.less +102 -0
  917. data/vendor/assets/javascripts/uikit/less/addons/cover.less +70 -0
  918. data/vendor/assets/javascripts/uikit/less/addons/datepicker.less +193 -0
  919. data/vendor/assets/javascripts/uikit/less/addons/dotnav.less +141 -0
  920. data/vendor/assets/javascripts/uikit/less/addons/flex.less +62 -0
  921. data/vendor/assets/javascripts/uikit/less/addons/form-advanced.less +123 -0
  922. data/vendor/assets/javascripts/uikit/less/addons/form-file.less +63 -0
  923. data/vendor/assets/javascripts/uikit/less/addons/form-password.less +74 -0
  924. data/vendor/assets/javascripts/uikit/less/addons/form-select.less +66 -0
  925. data/vendor/assets/javascripts/uikit/less/addons/htmleditor.less +274 -0
  926. data/vendor/assets/javascripts/uikit/less/addons/nestable.less +204 -0
  927. data/vendor/assets/javascripts/uikit/less/addons/notify.less +191 -0
  928. data/vendor/assets/javascripts/uikit/less/addons/placeholder.less +66 -0
  929. data/vendor/assets/javascripts/uikit/less/addons/search.less +310 -0
  930. data/vendor/assets/javascripts/uikit/less/addons/slidenav.less +164 -0
  931. data/vendor/assets/javascripts/uikit/less/addons/sortable.less +110 -0
  932. data/vendor/assets/javascripts/uikit/less/addons/sticky.less +52 -0
  933. data/vendor/assets/javascripts/uikit/less/addons/upload.less +34 -0
  934. data/vendor/assets/javascripts/uikit/less/alert.less +141 -0
  935. data/vendor/assets/javascripts/uikit/less/animation.less +580 -0
  936. data/vendor/assets/javascripts/uikit/less/article.less +139 -0
  937. data/vendor/assets/javascripts/uikit/less/badge.less +111 -0
  938. data/vendor/assets/javascripts/uikit/less/base.less +521 -0
  939. data/vendor/assets/javascripts/uikit/less/breadcrumb.less +86 -0
  940. data/vendor/assets/javascripts/uikit/less/button.less +407 -0
  941. data/vendor/assets/javascripts/uikit/less/close.less +133 -0
  942. data/vendor/assets/javascripts/uikit/less/comment.less +172 -0
  943. data/vendor/assets/javascripts/uikit/less/description-list.less +70 -0
  944. data/vendor/assets/javascripts/uikit/less/dropdown.less +272 -0
  945. data/vendor/assets/javascripts/uikit/less/form.less +623 -0
  946. data/vendor/assets/javascripts/uikit/less/grid.less +593 -0
  947. data/vendor/assets/javascripts/uikit/less/icon.less +695 -0
  948. data/vendor/assets/javascripts/uikit/less/index.html +0 -0
  949. data/vendor/assets/javascripts/uikit/less/list.less +102 -0
  950. data/vendor/assets/javascripts/uikit/less/modal.less +226 -0
  951. data/vendor/assets/javascripts/uikit/less/nav.less +468 -0
  952. data/vendor/assets/javascripts/uikit/less/navbar.less +327 -0
  953. data/vendor/assets/javascripts/uikit/less/offcanvas.less +162 -0
  954. data/vendor/assets/javascripts/uikit/less/overlay.less +241 -0
  955. data/vendor/assets/javascripts/uikit/less/pagination.less +198 -0
  956. data/vendor/assets/javascripts/uikit/less/panel.less +244 -0
  957. data/vendor/assets/javascripts/uikit/less/print.less +52 -0
  958. data/vendor/assets/javascripts/uikit/less/progress.less +174 -0
  959. data/vendor/assets/javascripts/uikit/less/subnav.less +183 -0
  960. data/vendor/assets/javascripts/uikit/less/switcher.less +33 -0
  961. data/vendor/assets/javascripts/uikit/less/tab.less +368 -0
  962. data/vendor/assets/javascripts/uikit/less/table.less +120 -0
  963. data/vendor/assets/javascripts/uikit/less/text.less +124 -0
  964. data/vendor/assets/javascripts/uikit/less/thumbnail.less +123 -0
  965. data/vendor/assets/javascripts/uikit/less/tooltip.less +179 -0
  966. data/vendor/assets/javascripts/uikit/less/uikit-addons.less +26 -0
  967. data/vendor/assets/javascripts/uikit/less/uikit.css +4426 -0
  968. data/vendor/assets/javascripts/uikit/less/uikit.less +53 -0
  969. data/vendor/assets/javascripts/uikit/less/utility.less +526 -0
  970. data/vendor/assets/javascripts/uikit/less/variables.less +27 -0
  971. data/vendor/assets/javascripts/uikit/uikit.css +1 -0
  972. data/vendor/assets/javascripts/uikit/vendor/codemirror/codemirror.css +340 -0
  973. data/vendor/assets/javascripts/uikit/vendor/codemirror/codemirror.js +65 -0
  974. data/vendor/assets/javascripts/uikit/vendor/codemirror/show-hint.css +38 -0
  975. data/vendor/assets/javascripts/uikit/vendor/customizer.js +290 -0
  976. data/vendor/assets/javascripts/uikit/vendor/highlight/highlight.css +127 -0
  977. data/vendor/assets/javascripts/uikit/vendor/highlight/highlight.js +1 -0
  978. data/vendor/assets/javascripts/uikit/vendor/highlight/test.html +45 -0
  979. data/vendor/assets/javascripts/uikit/vendor/holder.js +648 -0
  980. data/vendor/assets/javascripts/uikit/vendor/index.html +0 -0
  981. data/vendor/assets/javascripts/uikit/vendor/jquery.js +4 -0
  982. data/vendor/assets/javascripts/uikit/vendor/jquery.less.js +274 -0
  983. data/vendor/assets/javascripts/uikit/vendor/jquery.mustache.js +16 -0
  984. data/vendor/assets/javascripts/uikit/vendor/jquery.rtl.js +271 -0
  985. data/vendor/assets/javascripts/uikit/vendor/less.js +16 -0
  986. data/vendor/assets/javascripts/uikit/vendor/marked.js +1272 -0
  987. data/vendor/assets/javascripts/uikit/vendor/spectrum/spectrum.css +480 -0
  988. data/vendor/assets/javascripts/uikit/vendor/spectrum/spectrum.js +1889 -0
  989. data/vendor/assets/javascripts/uikit/vendor/spectrum/test.html +343 -0
  990. data/vendor/assets/javascripts/wysihtml5/index.html +0 -0
  991. data/vendor/assets/javascripts/wysihtml5/lib/css/bootstrap-responsive.css +686 -0
  992. data/vendor/assets/javascripts/wysihtml5/lib/css/bootstrap-responsive.min.css +12 -0
  993. data/vendor/assets/javascripts/wysihtml5/lib/css/bootstrap.css +3990 -0
  994. data/vendor/assets/javascripts/wysihtml5/lib/css/bootstrap.min.css +689 -0
  995. data/vendor/assets/javascripts/wysihtml5/lib/css/index.html +0 -0
  996. data/vendor/assets/javascripts/wysihtml5/lib/css/prettify.css +30 -0
  997. data/vendor/assets/javascripts/wysihtml5/lib/css/wysiwyg-color.css +67 -0
  998. data/vendor/assets/javascripts/wysihtml5/lib/img/glyphicons-halflings-white.png +0 -0
  999. data/vendor/assets/javascripts/wysihtml5/lib/img/glyphicons-halflings.png +0 -0
  1000. data/vendor/assets/javascripts/wysihtml5/lib/img/index.html +0 -0
  1001. data/vendor/assets/javascripts/wysihtml5/lib/index.html +0 -0
  1002. data/vendor/assets/javascripts/wysihtml5/lib/js/bootstrap-button.js +100 -0
  1003. data/vendor/assets/javascripts/wysihtml5/lib/js/bootstrap.js +2025 -0
  1004. data/vendor/assets/javascripts/wysihtml5/lib/js/bootstrap.min.js +6 -0
  1005. data/vendor/assets/javascripts/wysihtml5/lib/js/index.html +0 -0
  1006. data/vendor/assets/javascripts/wysihtml5/lib/js/jquery-1.7.2.min.js +4 -0
  1007. data/vendor/assets/javascripts/wysihtml5/lib/js/prettify.js +28 -0
  1008. data/vendor/assets/javascripts/wysihtml5/lib/js/wysihtml5-0.3.0.js +9523 -0
  1009. data/vendor/assets/javascripts/wysihtml5/lib/js/wysihtml5-0.3.0.min.js +261 -0
  1010. data/vendor/assets/javascripts/wysihtml5/src/bootstrap-wysihtml5.css +102 -0
  1011. data/vendor/assets/javascripts/wysihtml5/src/bootstrap-wysihtml5.js +519 -0
  1012. data/vendor/assets/javascripts/wysihtml5/src/index.html +0 -0
  1013. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ar-AR.js +49 -0
  1014. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.bg-BG.js +49 -0
  1015. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ca-CT.js +47 -0
  1016. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.cs-CZ.js +48 -0
  1017. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.da-DK.js +48 -0
  1018. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.de-DE.js +49 -0
  1019. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.el-GR.js +48 -0
  1020. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.es-AR.js +49 -0
  1021. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.es-ES.js +48 -0
  1022. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.fr-FR.js +49 -0
  1023. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.hr-HR.js +48 -0
  1024. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.it-IT.js +47 -0
  1025. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ja-JP.js +49 -0
  1026. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ko-KR.js +49 -0
  1027. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.lt-LT.js +48 -0
  1028. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.mo-MD.js +48 -0
  1029. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.nb-NB.js +49 -0
  1030. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.nl-NL.js +48 -0
  1031. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.pl-PL.js +48 -0
  1032. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.pt-BR.js +52 -0
  1033. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ru-RU.js +49 -0
  1034. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.sk-SK.js +48 -0
  1035. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.sv-SE.js +48 -0
  1036. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.tr-TR.js +48 -0
  1037. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.ua-UA.js +49 -0
  1038. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.zh-CN.js +48 -0
  1039. data/vendor/assets/javascripts/wysihtml5/src/locales/bootstrap-wysihtml5.zh-TW.js +48 -0
  1040. data/vendor/assets/javascripts/wysihtml5/src/locales/index.html +0 -0
  1041. data/vendor/assets/javascripts/wysihtml5/wysihtml5-angular.js +10042 -0
  1042. data/vendor/assets/javascripts/xenon-api.js +91 -0
  1043. data/vendor/assets/javascripts/xenon-custom.js +1950 -0
  1044. data/vendor/assets/javascripts/xenon-notes.js +189 -0
  1045. data/vendor/assets/javascripts/xenon-toggles.js +321 -0
  1046. data/vendor/assets/javascripts/xenon-widgets.js +171 -0
  1047. data/vendor/assets/stylesheets/bootstrap.css +1 -0
  1048. data/vendor/assets/stylesheets/handycss.css +996 -0
  1049. data/vendor/assets/stylesheets/other/wysihtml5-color.css +67 -0
  1050. data/vendor/assets/stylesheets/xenon-components.css +1 -0
  1051. data/vendor/assets/stylesheets/xenon-core.css +1 -0
  1052. data/vendor/assets/stylesheets/xenon-forms.css +18 -0
  1053. data/vendor/assets/stylesheets/xenon-skins.css +1 -0
  1054. data/vendor/assets/stylesheets/xenon.css +18 -0
  1055. metadata +1341 -0
@@ -0,0 +1,1889 @@
1
+ // Spectrum Colorpicker v1.1.0
2
+ // https://github.com/bgrins/spectrum
3
+ // Author: Brian Grinstead
4
+ // License: MIT
5
+
6
+ (function (window, $, undefined) {
7
+ var defaultOpts = {
8
+
9
+ // Callbacks
10
+ beforeShow: noop,
11
+ move: noop,
12
+ change: noop,
13
+ show: noop,
14
+ hide: noop,
15
+
16
+ // Options
17
+ color: false,
18
+ flat: false,
19
+ showInput: false,
20
+ showButtons: true,
21
+ clickoutFiresChange: false,
22
+ showInitial: false,
23
+ showPalette: false,
24
+ showPaletteOnly: false,
25
+ showSelectionPalette: true,
26
+ localStorageKey: false,
27
+ appendTo: "body",
28
+ maxSelectionSize: 7,
29
+ cancelText: "cancel",
30
+ chooseText: "choose",
31
+ preferredFormat: false,
32
+ className: "",
33
+ showAlpha: false,
34
+ theme: "sp-light",
35
+ palette: ['fff', '000'],
36
+ selectionPalette: [],
37
+ disabled: false
38
+ },
39
+ spectrums = [],
40
+ IE = !!/msie/i.exec( window.navigator.userAgent ),
41
+ rgbaSupport = (function() {
42
+ function contains( str, substr ) {
43
+ return !!~('' + str).indexOf(substr);
44
+ }
45
+
46
+ var elem = document.createElement('div');
47
+ var style = elem.style;
48
+ style.cssText = 'background-color:rgba(0,0,0,.5)';
49
+ return contains(style.backgroundColor, 'rgba') || contains(style.backgroundColor, 'hsla');
50
+ })(),
51
+ replaceInput = [
52
+ "<div class='sp-replacer'>",
53
+ "<div class='sp-preview'><div class='sp-preview-inner'></div></div>",
54
+ "<div class='sp-dd'>&#9660;</div>",
55
+ "</div>"
56
+ ].join(''),
57
+ markup = (function () {
58
+
59
+ // IE does not support gradients with multiple stops, so we need to simulate
60
+ // that for the rainbow slider with 8 divs that each have a single gradient
61
+ var gradientFix = "";
62
+ if (IE) {
63
+ for (var i = 1; i <= 6; i++) {
64
+ gradientFix += "<div class='sp-" + i + "'></div>";
65
+ }
66
+ }
67
+
68
+ return [
69
+ "<div class='sp-container sp-hidden'>",
70
+ "<div class='sp-palette-container'>",
71
+ "<div class='sp-palette sp-thumb sp-cf'></div>",
72
+ "</div>",
73
+ "<div class='sp-picker-container'>",
74
+ "<div class='sp-top sp-cf'>",
75
+ "<div class='sp-fill'></div>",
76
+ "<div class='sp-top-inner'>",
77
+ "<div class='sp-color'>",
78
+ "<div class='sp-sat'>",
79
+ "<div class='sp-val'>",
80
+ "<div class='sp-dragger'></div>",
81
+ "</div>",
82
+ "</div>",
83
+ "</div>",
84
+ "<div class='sp-hue'>",
85
+ "<div class='sp-slider'></div>",
86
+ gradientFix,
87
+ "</div>",
88
+ "</div>",
89
+ "<div class='sp-alpha'><div class='sp-alpha-inner'><div class='sp-alpha-handle'></div></div></div>",
90
+ "</div>",
91
+ "<div class='sp-input-container sp-cf'>",
92
+ "<input class='sp-input' placeholder='default' type='text' spellcheck='false' />",
93
+ "</div>",
94
+ "<div class='sp-initial sp-thumb sp-cf'></div>",
95
+ "<div class='sp-button-container sp-cf'>",
96
+ "<a class='sp-cancel' href='#'></a>",
97
+ "<button class='sp-choose'></button>",
98
+ "</div>",
99
+ "</div>",
100
+ "</div>"
101
+ ].join("");
102
+ })();
103
+
104
+ var log = function() { };
105
+ if (window.console) {
106
+ if (Function.prototype.bind) {
107
+ log = Function.prototype.bind.call(console.log, console);
108
+ }
109
+ else {
110
+ log = function() {
111
+ Function.prototype.apply.call(console.log, console, arguments);
112
+ };
113
+ }
114
+ }
115
+
116
+ function paletteTemplate (p, color, className) {
117
+ var html = [];
118
+ for (var i = 0; i < p.length; i++) {
119
+ var tiny = tinycolor(p[i]);
120
+ var c = tiny.toHsl().l < 0.5 ? "sp-thumb-el sp-thumb-dark" : "sp-thumb-el sp-thumb-light";
121
+ c += (tinycolor.equals(color, p[i])) ? " sp-thumb-active" : "";
122
+
123
+ var swatchStyle = rgbaSupport ? ("background-color:" + tiny.toRgbString()) : "filter:" + tiny.toFilter();
124
+ html.push('<span title="' + tiny.toRgbString() + '" data-color="' + tiny.toRgbString() + '" class="' + c + '"><span class="sp-thumb-inner" style="' + swatchStyle + ';" /></span>');
125
+ }
126
+ return "<div class='sp-cf " + className + "'>" + html.join('') + "</div>";
127
+ }
128
+
129
+ function hideAll() {
130
+ for (var i = 0; i < spectrums.length; i++) {
131
+ if (spectrums[i]) {
132
+ spectrums[i].hide();
133
+ }
134
+ }
135
+ }
136
+
137
+ function instanceOptions(o, callbackContext) {
138
+ var opts = $.extend({}, defaultOpts, o);
139
+ opts.callbacks = {
140
+ 'move': bind(opts.move, callbackContext),
141
+ 'change': bind(opts.change, callbackContext),
142
+ 'show': bind(opts.show, callbackContext),
143
+ 'hide': bind(opts.hide, callbackContext),
144
+ 'beforeShow': bind(opts.beforeShow, callbackContext)
145
+ };
146
+
147
+ return opts;
148
+ }
149
+
150
+ function spectrum(element, o) {
151
+
152
+ var opts = instanceOptions(o, element),
153
+ flat = opts.flat,
154
+ showSelectionPalette = opts.showSelectionPalette,
155
+ localStorageKey = opts.localStorageKey,
156
+ theme = opts.theme,
157
+ callbacks = opts.callbacks,
158
+ resize = throttle(reflow, 10),
159
+ visible = false,
160
+ dragWidth = 0,
161
+ dragHeight = 0,
162
+ dragHelperHeight = 0,
163
+ slideHeight = 0,
164
+ slideWidth = 0,
165
+ alphaWidth = 0,
166
+ alphaSlideHelperWidth = 0,
167
+ slideHelperHeight = 0,
168
+ currentHue = 0,
169
+ currentSaturation = 0,
170
+ currentValue = 0,
171
+ currentAlpha = 1,
172
+ palette = opts.palette.slice(0),
173
+ paletteArray = $.isArray(palette[0]) ? palette : [palette],
174
+ selectionPalette = opts.selectionPalette.slice(0),
175
+ maxSelectionSize = opts.maxSelectionSize,
176
+ draggingClass = "sp-dragging";
177
+
178
+ var doc = element.ownerDocument,
179
+ body = doc.body,
180
+ boundElement = $(element),
181
+ disabled = false,
182
+ container = $(markup, doc).addClass(theme),
183
+ dragger = container.find(".sp-color"),
184
+ dragHelper = container.find(".sp-dragger"),
185
+ slider = container.find(".sp-hue"),
186
+ slideHelper = container.find(".sp-slider"),
187
+ alphaSliderInner = container.find(".sp-alpha-inner"),
188
+ alphaSlider = container.find(".sp-alpha"),
189
+ alphaSlideHelper = container.find(".sp-alpha-handle"),
190
+ textInput = container.find(".sp-input"),
191
+ paletteContainer = container.find(".sp-palette"),
192
+ initialColorContainer = container.find(".sp-initial"),
193
+ cancelButton = container.find(".sp-cancel"),
194
+ chooseButton = container.find(".sp-choose"),
195
+ isInput = boundElement.is("input"),
196
+ shouldReplace = isInput && !flat,
197
+ replacer = (shouldReplace) ? $(replaceInput).addClass(theme).addClass(opts.className) : $([]),
198
+ offsetElement = (shouldReplace) ? replacer : boundElement,
199
+ previewElement = replacer.find(".sp-preview-inner"),
200
+ initialColor = opts.color || (isInput && boundElement.val()),
201
+ colorOnShow = false,
202
+ preferredFormat = opts.preferredFormat,
203
+ currentPreferredFormat = preferredFormat,
204
+ clickoutFiresChange = !opts.showButtons || opts.clickoutFiresChange;
205
+
206
+
207
+ function applyOptions() {
208
+
209
+ container.toggleClass("sp-flat", flat);
210
+ container.toggleClass("sp-input-disabled", !opts.showInput);
211
+ container.toggleClass("sp-alpha-enabled", opts.showAlpha);
212
+ container.toggleClass("sp-buttons-disabled", !opts.showButtons || flat);
213
+ container.toggleClass("sp-palette-disabled", !opts.showPalette);
214
+ container.toggleClass("sp-palette-only", opts.showPaletteOnly);
215
+ container.toggleClass("sp-initial-disabled", !opts.showInitial);
216
+ container.addClass(opts.className);
217
+
218
+ reflow();
219
+ }
220
+
221
+ function initialize() {
222
+
223
+ if (IE) {
224
+ container.find("*:not(input)").attr("unselectable", "on");
225
+ }
226
+
227
+ applyOptions();
228
+
229
+ if (shouldReplace) {
230
+ boundElement.after(replacer).hide();
231
+ }
232
+
233
+ if (flat) {
234
+ boundElement.after(container).hide();
235
+ }
236
+ else {
237
+
238
+ var appendTo = opts.appendTo === "parent" ? boundElement.parent() : $(opts.appendTo);
239
+ if (appendTo.length !== 1) {
240
+ appendTo = $("body");
241
+ }
242
+
243
+ appendTo.append(container);
244
+ }
245
+
246
+ if (localStorageKey && window.localStorage) {
247
+
248
+ // Migrate old palettes over to new format. May want to remove this eventually.
249
+ try {
250
+ var oldPalette = window.localStorage[localStorageKey].split(",#");
251
+ if (oldPalette.length > 1) {
252
+ delete window.localStorage[localStorageKey];
253
+ $.each(oldPalette, function(i, c) {
254
+ addColorToSelectionPalette(c);
255
+ });
256
+ }
257
+ }
258
+ catch(e) { }
259
+
260
+ try {
261
+ selectionPalette = window.localStorage[localStorageKey].split(";");
262
+ }
263
+ catch (e) { }
264
+ }
265
+
266
+ offsetElement.bind("click.spectrum touchstart.spectrum", function (e) {
267
+ if (!disabled) {
268
+ toggle();
269
+ }
270
+
271
+ e.stopPropagation();
272
+
273
+ if (!$(e.target).is("input")) {
274
+ e.preventDefault();
275
+ }
276
+ });
277
+
278
+ if(boundElement.is(":disabled") || (opts.disabled === true)) {
279
+ disable();
280
+ }
281
+
282
+ // Prevent clicks from bubbling up to document. This would cause it to be hidden.
283
+ container.click(stopPropagation);
284
+
285
+ // Handle user typed input
286
+ textInput.change(setFromTextInput);
287
+ textInput.bind("paste", function () {
288
+ setTimeout(setFromTextInput, 1);
289
+ });
290
+ textInput.keydown(function (e) { if (e.keyCode == 13) { setFromTextInput(); } });
291
+
292
+ cancelButton.text(opts.cancelText);
293
+ cancelButton.bind("click.spectrum", function (e) {
294
+ e.stopPropagation();
295
+ e.preventDefault();
296
+ hide("cancel");
297
+ });
298
+
299
+ chooseButton.text(opts.chooseText);
300
+ chooseButton.bind("click.spectrum", function (e) {
301
+ e.stopPropagation();
302
+ e.preventDefault();
303
+
304
+ if (isValid()) {
305
+ updateOriginalInput(true);
306
+ hide();
307
+ }
308
+
309
+ if(textInput.val()=="") {
310
+ set(tinycolor("rgba(0,0,0,0)"));
311
+ boundElement.val("");
312
+ hide();
313
+ }
314
+ });
315
+
316
+ draggable(alphaSlider, function (dragX, dragY, e) {
317
+ currentAlpha = (dragX / alphaWidth);
318
+ if (e.shiftKey) {
319
+ currentAlpha = Math.round(currentAlpha * 10) / 10;
320
+ }
321
+
322
+ move();
323
+ });
324
+
325
+ draggable(slider, function (dragX, dragY) {
326
+ currentHue = parseFloat(dragY / slideHeight);
327
+ move();
328
+ }, dragStart, dragStop);
329
+
330
+ draggable(dragger, function (dragX, dragY) {
331
+ currentSaturation = parseFloat(dragX / dragWidth);
332
+ currentValue = parseFloat((dragHeight - dragY) / dragHeight);
333
+ move();
334
+ }, dragStart, dragStop);
335
+
336
+ if (!!initialColor) {
337
+ set(initialColor);
338
+
339
+ // In case color was black - update the preview UI and set the format
340
+ // since the set function will not run (default color is black).
341
+ updateUI();
342
+ currentPreferredFormat = preferredFormat || tinycolor(initialColor).format;
343
+
344
+ addColorToSelectionPalette(initialColor);
345
+ }
346
+ else {
347
+ updateUI();
348
+ }
349
+
350
+ if (flat) {
351
+ show();
352
+ }
353
+
354
+ function palletElementClick(e) {
355
+ if (e.data && e.data.ignore) {
356
+ set($(this).data("color"));
357
+ move();
358
+ }
359
+ else {
360
+ set($(this).data("color"));
361
+ updateOriginalInput(true);
362
+ move();
363
+ hide();
364
+ }
365
+
366
+ return false;
367
+ }
368
+
369
+ var paletteEvent = IE ? "mousedown.spectrum" : "click.spectrum touchstart.spectrum";
370
+ paletteContainer.delegate(".sp-thumb-el", paletteEvent, palletElementClick);
371
+ initialColorContainer.delegate(".sp-thumb-el:nth-child(1)", paletteEvent, { ignore: true }, palletElementClick);
372
+ }
373
+
374
+ function addColorToSelectionPalette(color) {
375
+ if (showSelectionPalette) {
376
+ var colorRgb = tinycolor(color).toRgbString();
377
+ if ($.inArray(colorRgb, selectionPalette) === -1) {
378
+ selectionPalette.push(colorRgb);
379
+ while(selectionPalette.length > maxSelectionSize) {
380
+ selectionPalette.shift();
381
+ }
382
+ }
383
+
384
+ if (localStorageKey && window.localStorage) {
385
+ try {
386
+ window.localStorage[localStorageKey] = selectionPalette.join(";");
387
+ }
388
+ catch(e) { }
389
+ }
390
+ }
391
+ }
392
+
393
+ function getUniqueSelectionPalette() {
394
+ var unique = [];
395
+ var p = selectionPalette;
396
+ var paletteLookup = {};
397
+ var rgb;
398
+
399
+ if (opts.showPalette) {
400
+
401
+ for (var i = 0; i < paletteArray.length; i++) {
402
+ for (var j = 0; j < paletteArray[i].length; j++) {
403
+ rgb = tinycolor(paletteArray[i][j]).toRgbString();
404
+ paletteLookup[rgb] = true;
405
+ }
406
+ }
407
+
408
+ for (i = 0; i < p.length; i++) {
409
+ rgb = tinycolor(p[i]).toRgbString();
410
+
411
+ if (!paletteLookup.hasOwnProperty(rgb)) {
412
+ unique.push(p[i]);
413
+ paletteLookup[rgb] = true;
414
+ }
415
+ }
416
+ }
417
+
418
+ return unique.reverse().slice(0, opts.maxSelectionSize);
419
+ }
420
+
421
+ function drawPalette() {
422
+
423
+ var currentColor = get();
424
+
425
+ var html = $.map(paletteArray, function (palette, i) {
426
+ return paletteTemplate(palette, currentColor, "sp-palette-row sp-palette-row-" + i);
427
+ });
428
+
429
+ if (selectionPalette) {
430
+ html.push(paletteTemplate(getUniqueSelectionPalette(), currentColor, "sp-palette-row sp-palette-row-selection"));
431
+ }
432
+
433
+ paletteContainer.html(html.join(""));
434
+ }
435
+
436
+ function drawInitial() {
437
+ if (opts.showInitial) {
438
+ var initial = colorOnShow;
439
+ var current = get();
440
+ initialColorContainer.html(paletteTemplate([initial, current], current, "sp-palette-row-initial"));
441
+ }
442
+ }
443
+
444
+ function dragStart() {
445
+ if (dragHeight <= 0 || dragWidth <= 0 || slideHeight <= 0) {
446
+ reflow();
447
+ }
448
+ container.addClass(draggingClass);
449
+ }
450
+
451
+ function dragStop() {
452
+ container.removeClass(draggingClass);
453
+ }
454
+
455
+ function setFromTextInput() {
456
+
457
+ if(!textInput.val()) {
458
+ return;
459
+ }
460
+
461
+ var tiny = tinycolor(textInput.val());
462
+ if (tiny.ok) {
463
+ set(tiny);
464
+ }
465
+ else {
466
+ textInput.addClass("sp-validation-error");
467
+ }
468
+ }
469
+
470
+ function toggle() {
471
+ if (visible) {
472
+ hide();
473
+ }
474
+ else {
475
+ show();
476
+ }
477
+ }
478
+
479
+ function show() {
480
+ var event = $.Event('beforeShow.spectrum');
481
+
482
+ if (visible) {
483
+ reflow();
484
+ return;
485
+ }
486
+
487
+ boundElement.trigger(event, [ get() ]);
488
+
489
+ if (callbacks.beforeShow(get()) === false || event.isDefaultPrevented()) {
490
+ return;
491
+ }
492
+
493
+ hideAll();
494
+ visible = true;
495
+
496
+ $(doc).bind("click.spectrum", hide);
497
+ $(window).bind("resize.spectrum", resize);
498
+ replacer.addClass("sp-active");
499
+ container.removeClass("sp-hidden");
500
+
501
+ if (opts.showPalette) {
502
+ drawPalette();
503
+ }
504
+ reflow();
505
+ updateUI();
506
+
507
+ colorOnShow = get();
508
+
509
+ drawInitial();
510
+ callbacks.show(colorOnShow);
511
+ //boundElement.trigger('show.spectrum', [ colorOnShow ]); // conflict with mootools
512
+ }
513
+
514
+ function hide(e) {
515
+
516
+ // Return on right click
517
+ if (e && e.type == "click" && e.button == 2) { return; }
518
+
519
+ // Return if hiding is unnecessary
520
+ if (!visible || flat) { return; }
521
+ visible = false;
522
+
523
+ $(doc).unbind("click.spectrum", hide);
524
+ $(window).unbind("resize.spectrum", resize);
525
+
526
+ replacer.removeClass("sp-active");
527
+ container.addClass("sp-hidden");
528
+
529
+ var colorHasChanged = !tinycolor.equals(get(), colorOnShow);
530
+
531
+ if (colorHasChanged) {
532
+ if (clickoutFiresChange && e !== "cancel") {
533
+ updateOriginalInput(true);
534
+ }
535
+ else {
536
+ revert();
537
+ }
538
+ }
539
+
540
+ callbacks.hide(get());
541
+ boundElement.trigger('hide.spectrum', [ get() ]);
542
+ }
543
+
544
+ function revert() {
545
+ set(colorOnShow, true);
546
+ }
547
+
548
+ function set(color, ignoreFormatChange) {
549
+ if (tinycolor.equals(color, get())) {
550
+ return;
551
+ }
552
+
553
+ var newColor = tinycolor(color);
554
+ var newHsv = newColor.toHsv();
555
+
556
+ currentHue = newHsv.h;
557
+ currentSaturation = newHsv.s;
558
+ currentValue = newHsv.v;
559
+ currentAlpha = newHsv.a;
560
+
561
+ updateUI();
562
+
563
+ if (newColor.ok && !ignoreFormatChange) {
564
+ currentPreferredFormat = preferredFormat || newColor.format;
565
+ }
566
+ }
567
+
568
+ function get(opts) {
569
+ opts = opts || { };
570
+ return tinycolor.fromRatio({
571
+ h: currentHue,
572
+ s: currentSaturation,
573
+ v: currentValue,
574
+ a: Math.round(currentAlpha * 100) / 100
575
+ }, { format: opts.format || currentPreferredFormat });
576
+ }
577
+
578
+ function isValid() {
579
+ return !textInput.hasClass("sp-validation-error");
580
+ }
581
+
582
+ function move() {
583
+ updateUI();
584
+
585
+ callbacks.move(get());
586
+ boundElement.trigger('move.spectrum', [ get() ]);
587
+ }
588
+
589
+ function updateUI() {
590
+
591
+ textInput.removeClass("sp-validation-error");
592
+
593
+ updateHelperLocations();
594
+
595
+ // Update dragger background color (gradients take care of saturation and value).
596
+ var flatColor = tinycolor.fromRatio({ h: currentHue, s: 1, v: 1 });
597
+ dragger.css("background-color", flatColor.toHexString());
598
+
599
+ // Get a format that alpha will be included in (hex and names ignore alpha)
600
+ var format = currentPreferredFormat;
601
+ if (currentAlpha < 1) {
602
+ if (format === "hex" || format === "hex3" || format === "hex6" || format === "name") {
603
+ format = "rgb";
604
+ }
605
+ }
606
+
607
+ var realColor = get({ format: format }),
608
+ realHex = realColor.toHexString(),
609
+ realRgb = realColor.toRgbString();
610
+
611
+ // Update the replaced elements background color (with actual selected color)
612
+ if (rgbaSupport || realColor.alpha === 1) {
613
+ previewElement.css("background-color", realRgb);
614
+ }
615
+ else {
616
+ previewElement.css("background-color", "transparent");
617
+ previewElement.css("filter", realColor.toFilter());
618
+ }
619
+
620
+ if (opts.showAlpha) {
621
+ var rgb = realColor.toRgb();
622
+ rgb.a = 0;
623
+ var realAlpha = tinycolor(rgb).toRgbString();
624
+ var gradient = "linear-gradient(left, " + realAlpha + ", " + realHex + ")";
625
+
626
+ if (IE) {
627
+ alphaSliderInner.css("filter", tinycolor(realAlpha).toFilter({ gradientType: 1 }, realHex));
628
+ }
629
+ else {
630
+ alphaSliderInner.css("background", "-webkit-" + gradient);
631
+ alphaSliderInner.css("background", "-moz-" + gradient);
632
+ alphaSliderInner.css("background", "-ms-" + gradient);
633
+ alphaSliderInner.css("background", gradient);
634
+ }
635
+ }
636
+
637
+
638
+ // Update the text entry input as it changes happen
639
+ if (opts.showInput) {
640
+ textInput.val(realColor.toString(format));
641
+ }
642
+
643
+ if (opts.showPalette) {
644
+ drawPalette();
645
+ }
646
+
647
+ drawInitial();
648
+ }
649
+
650
+ function updateHelperLocations() {
651
+ var s = currentSaturation;
652
+ var v = currentValue;
653
+
654
+ // Where to show the little circle in that displays your current selected color
655
+ var dragX = s * dragWidth;
656
+ var dragY = dragHeight - (v * dragHeight);
657
+ dragX = Math.max(
658
+ -dragHelperHeight,
659
+ Math.min(dragWidth - dragHelperHeight/2, dragX - dragHelperHeight/2)
660
+ );
661
+ dragY = Math.max(
662
+ -dragHelperHeight,
663
+ Math.min(dragHeight - dragHelperHeight/2, dragY - dragHelperHeight/2)
664
+ );
665
+ dragHelper.css({
666
+ "top": dragY,
667
+ "left": dragX
668
+ });
669
+
670
+ var alphaX = currentAlpha * alphaWidth;
671
+ alphaSlideHelper.css({
672
+ "left": alphaX - (alphaSlideHelperWidth / 2)
673
+ });
674
+
675
+ // Where to show the bar that displays your current selected hue
676
+ var slideY = (currentHue) * slideHeight;
677
+ slideHelper.css({
678
+ "top": slideY - slideHelperHeight
679
+ });
680
+ }
681
+
682
+ function updateOriginalInput(fireCallback) {
683
+ var color = get();
684
+
685
+ if (isInput) {
686
+ boundElement.val(color.toString(currentPreferredFormat)).change();
687
+ }
688
+
689
+ var hasChanged = !tinycolor.equals(color, colorOnShow);
690
+ colorOnShow = color;
691
+
692
+ // Update the selection palette with the current color
693
+ addColorToSelectionPalette(color);
694
+ if (fireCallback && hasChanged) {
695
+ callbacks.change(color);
696
+ boundElement.trigger('change.spectrum', [ color ]);
697
+ }
698
+ }
699
+
700
+ function reflow() {
701
+ dragWidth = dragger.width();
702
+ dragHeight = dragger.height();
703
+ dragHelperHeight = dragHelper.height();
704
+ slideWidth = slider.width();
705
+ slideHeight = slider.height();
706
+ slideHelperHeight = slideHelper.height();
707
+ alphaWidth = alphaSlider.width();
708
+ alphaSlideHelperWidth = alphaSlideHelper.width();
709
+
710
+ if (!flat) {
711
+ container.css("position", "absolute");
712
+ container.offset(getOffset(container, offsetElement));
713
+ }
714
+
715
+ updateHelperLocations();
716
+ }
717
+
718
+ function destroy() {
719
+ boundElement.show();
720
+ offsetElement.unbind("click.spectrum touchstart.spectrum");
721
+ container.remove();
722
+ replacer.remove();
723
+ spectrums[spect.id] = null;
724
+ }
725
+
726
+ function option(optionName, optionValue) {
727
+ if (optionName === undefined) {
728
+ return $.extend({}, opts);
729
+ }
730
+ if (optionValue === undefined) {
731
+ return opts[optionName];
732
+ }
733
+
734
+ opts[optionName] = optionValue;
735
+ applyOptions();
736
+ }
737
+
738
+ function enable() {
739
+ disabled = false;
740
+ boundElement.attr("disabled", false);
741
+ offsetElement.removeClass("sp-disabled");
742
+ }
743
+
744
+ function disable() {
745
+ hide();
746
+ disabled = true;
747
+ boundElement.attr("disabled", true);
748
+ offsetElement.addClass("sp-disabled");
749
+ }
750
+
751
+ initialize();
752
+
753
+ var spect = {
754
+ show: show,
755
+ hide: hide,
756
+ toggle: toggle,
757
+ reflow: reflow,
758
+ option: option,
759
+ enable: enable,
760
+ disable: disable,
761
+ set: function (c) {
762
+ set(c);
763
+ updateOriginalInput();
764
+ },
765
+ get: get,
766
+ destroy: destroy,
767
+ container: container
768
+ };
769
+
770
+ spect.id = spectrums.push(spect) - 1;
771
+
772
+ return spect;
773
+ }
774
+
775
+ /**
776
+ * checkOffset - get the offset below/above and left/right element depending on screen position
777
+ * Thanks https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.datepicker.js
778
+ */
779
+ function getOffset(picker, input) {
780
+ var extraY = 0;
781
+ var dpWidth = picker.outerWidth();
782
+ var dpHeight = picker.outerHeight();
783
+ var inputHeight = input.outerHeight();
784
+ var doc = picker[0].ownerDocument;
785
+ var docElem = doc.documentElement;
786
+ var viewWidth = docElem.clientWidth + $(doc).scrollLeft();
787
+ var viewHeight = docElem.clientHeight + $(doc).scrollTop();
788
+ var offset = input.offset();
789
+ offset.top += inputHeight;
790
+
791
+ offset.left -=
792
+ Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
793
+ Math.abs(offset.left + dpWidth - viewWidth) : 0);
794
+
795
+ offset.top -=
796
+ Math.min(offset.top, ((offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
797
+ Math.abs(dpHeight + inputHeight - extraY) : extraY));
798
+
799
+ return offset;
800
+ }
801
+
802
+ /**
803
+ * noop - do nothing
804
+ */
805
+ function noop() {
806
+
807
+ }
808
+
809
+ /**
810
+ * stopPropagation - makes the code only doing this a little easier to read in line
811
+ */
812
+ function stopPropagation(e) {
813
+ e.stopPropagation();
814
+ }
815
+
816
+ /**
817
+ * Create a function bound to a given object
818
+ * Thanks to underscore.js
819
+ */
820
+ function bind(func, obj) {
821
+ var slice = Array.prototype.slice;
822
+ var args = slice.call(arguments, 2);
823
+ return function () {
824
+ return func.apply(obj, args.concat(slice.call(arguments)));
825
+ };
826
+ }
827
+
828
+ /**
829
+ * Lightweight drag helper. Handles containment within the element, so that
830
+ * when dragging, the x is within [0,element.width] and y is within [0,element.height]
831
+ */
832
+ function draggable(element, onmove, onstart, onstop) {
833
+ onmove = onmove || function () { };
834
+ onstart = onstart || function () { };
835
+ onstop = onstop || function () { };
836
+ var doc = element.ownerDocument || document;
837
+ var dragging = false;
838
+ var offset = {};
839
+ var maxHeight = 0;
840
+ var maxWidth = 0;
841
+ var hasTouch = ('ontouchstart' in window);
842
+
843
+ var duringDragEvents = {};
844
+ duringDragEvents["selectstart"] = prevent;
845
+ duringDragEvents["dragstart"] = prevent;
846
+ duringDragEvents[(hasTouch ? "touchmove" : "mousemove")] = move;
847
+ duringDragEvents[(hasTouch ? "touchend" : "mouseup")] = stop;
848
+
849
+ function prevent(e) {
850
+ if (e.stopPropagation) {
851
+ e.stopPropagation();
852
+ }
853
+ if (e.preventDefault) {
854
+ e.preventDefault();
855
+ }
856
+ e.returnValue = false;
857
+ }
858
+
859
+ function move(e) {
860
+ if (dragging) {
861
+ // Mouseup happened outside of window
862
+ if (IE && document.documentMode < 9 && !e.button) {
863
+ return stop();
864
+ }
865
+
866
+ var touches = e.originalEvent.touches;
867
+ var pageX = touches ? touches[0].pageX : e.pageX;
868
+ var pageY = touches ? touches[0].pageY : e.pageY;
869
+
870
+ var dragX = Math.max(0, Math.min(pageX - offset.left, maxWidth));
871
+ var dragY = Math.max(0, Math.min(pageY - offset.top, maxHeight));
872
+
873
+ if (hasTouch) {
874
+ // Stop scrolling in iOS
875
+ prevent(e);
876
+ }
877
+
878
+ onmove.apply(element, [dragX, dragY, e]);
879
+ }
880
+ }
881
+ function start(e) {
882
+ var rightclick = (e.which) ? (e.which == 3) : (e.button == 2);
883
+ var touches = e.originalEvent.touches;
884
+
885
+ if (!rightclick && !dragging) {
886
+ if (onstart.apply(element, arguments) !== false) {
887
+ dragging = true;
888
+ maxHeight = $(element).height();
889
+ maxWidth = $(element).width();
890
+ offset = $(element).offset();
891
+
892
+ $(doc).bind(duringDragEvents);
893
+ $(doc.body).addClass("sp-dragging");
894
+
895
+ if (!hasTouch) {
896
+ move(e);
897
+ }
898
+
899
+ prevent(e);
900
+ }
901
+ }
902
+ }
903
+ function stop() {
904
+ if (dragging) {
905
+ $(doc).unbind(duringDragEvents);
906
+ $(doc.body).removeClass("sp-dragging");
907
+ onstop.apply(element, arguments);
908
+ }
909
+ dragging = false;
910
+ }
911
+
912
+ $(element).bind(hasTouch ? "touchstart" : "mousedown", start);
913
+ }
914
+
915
+ function throttle(func, wait, debounce) {
916
+ var timeout;
917
+ return function () {
918
+ var context = this, args = arguments;
919
+ var throttler = function () {
920
+ timeout = null;
921
+ func.apply(context, args);
922
+ };
923
+ if (debounce) clearTimeout(timeout);
924
+ if (debounce || !timeout) timeout = setTimeout(throttler, wait);
925
+ };
926
+ }
927
+
928
+
929
+ /**
930
+ * Define a jQuery plugin
931
+ */
932
+ var dataID = "spectrum.id";
933
+ $.fn.spectrum = function (opts, extra) {
934
+
935
+ if (typeof opts == "string") {
936
+
937
+ var returnValue = this;
938
+ var args = Array.prototype.slice.call( arguments, 1 );
939
+
940
+ this.each(function () {
941
+ var spect = spectrums[$(this).data(dataID)];
942
+ if (spect) {
943
+
944
+ var method = spect[opts];
945
+ if (!method) {
946
+ throw new Error( "Spectrum: no such method: '" + opts + "'" );
947
+ }
948
+
949
+ if (opts == "get") {
950
+ returnValue = spect.get();
951
+ }
952
+ else if (opts == "container") {
953
+ returnValue = spect.container;
954
+ }
955
+ else if (opts == "option") {
956
+ returnValue = spect.option.apply(spect, args);
957
+ }
958
+ else if (opts == "destroy") {
959
+ spect.destroy();
960
+ $(this).removeData(dataID);
961
+ }
962
+ else {
963
+ method.apply(spect, args);
964
+ }
965
+ }
966
+ });
967
+
968
+ return returnValue;
969
+ }
970
+
971
+ // Initializing a new instance of spectrum
972
+ return this.spectrum("destroy").each(function () {
973
+ var spect = spectrum(this, opts);
974
+ $(this).data(dataID, spect.id);
975
+ });
976
+ };
977
+
978
+ $.fn.spectrum.load = true;
979
+ $.fn.spectrum.loadOpts = {};
980
+ $.fn.spectrum.draggable = draggable;
981
+ $.fn.spectrum.defaults = defaultOpts;
982
+
983
+ $.spectrum = { };
984
+ $.spectrum.localization = { };
985
+ $.spectrum.palettes = { };
986
+
987
+ $.fn.spectrum.processNativeColorInputs = function () {
988
+ var colorInput = $("<input type='color' value='!' />")[0];
989
+ var supportsColor = colorInput.type === "color" && colorInput.value != "!";
990
+
991
+ if (!supportsColor) {
992
+ $("input[type=color]").spectrum({
993
+ preferredFormat: "hex6"
994
+ });
995
+ }
996
+ };
997
+ // TinyColor v0.9.14
998
+ // https://github.com/bgrins/TinyColor
999
+ // 2013-02-24, Brian Grinstead, MIT License
1000
+
1001
+ (function(root) {
1002
+
1003
+ var trimLeft = /^[\s,#]+/,
1004
+ trimRight = /\s+$/,
1005
+ tinyCounter = 0,
1006
+ math = Math,
1007
+ mathRound = math.round,
1008
+ mathMin = math.min,
1009
+ mathMax = math.max,
1010
+ mathRandom = math.random;
1011
+
1012
+ function tinycolor (color, opts) {
1013
+
1014
+ color = (color) ? color : '';
1015
+ opts = opts || { };
1016
+
1017
+ // If input is already a tinycolor, return itself
1018
+ if (typeof color == "object" && color.hasOwnProperty("_tc_id")) {
1019
+ return color;
1020
+ }
1021
+ var rgb = inputToRGB(color);
1022
+ var r = rgb.r,
1023
+ g = rgb.g,
1024
+ b = rgb.b,
1025
+ a = rgb.a,
1026
+ roundA = mathRound(100*a) / 100,
1027
+ format = opts.format || rgb.format;
1028
+
1029
+ // Don't let the range of [0,255] come back in [0,1].
1030
+ // Potentially lose a little bit of precision here, but will fix issues where
1031
+ // .5 gets interpreted as half of the total, instead of half of 1
1032
+ // If it was supposed to be 128, this was already taken care of by `inputToRgb`
1033
+ if (r < 1) { r = mathRound(r); }
1034
+ if (g < 1) { g = mathRound(g); }
1035
+ if (b < 1) { b = mathRound(b); }
1036
+
1037
+ return {
1038
+ ok: rgb.ok,
1039
+ format: format,
1040
+ _tc_id: tinyCounter++,
1041
+ alpha: a,
1042
+ toHsv: function() {
1043
+ var hsv = rgbToHsv(r, g, b);
1044
+ return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: a };
1045
+ },
1046
+ toHsvString: function() {
1047
+ var hsv = rgbToHsv(r, g, b);
1048
+ var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);
1049
+ return (a == 1) ?
1050
+ "hsv(" + h + ", " + s + "%, " + v + "%)" :
1051
+ "hsva(" + h + ", " + s + "%, " + v + "%, "+ roundA + ")";
1052
+ },
1053
+ toHsl: function() {
1054
+ var hsl = rgbToHsl(r, g, b);
1055
+ return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: a };
1056
+ },
1057
+ toHslString: function() {
1058
+ var hsl = rgbToHsl(r, g, b);
1059
+ var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);
1060
+ return (a == 1) ?
1061
+ "hsl(" + h + ", " + s + "%, " + l + "%)" :
1062
+ "hsla(" + h + ", " + s + "%, " + l + "%, "+ roundA + ")";
1063
+ },
1064
+ toHex: function(allow3Char) {
1065
+ return rgbToHex(r, g, b, allow3Char);
1066
+ },
1067
+ toHexString: function(allow3Char) {
1068
+ return '#' + rgbToHex(r, g, b, allow3Char);
1069
+ },
1070
+ toRgb: function() {
1071
+ return { r: mathRound(r), g: mathRound(g), b: mathRound(b), a: a };
1072
+ },
1073
+ toRgbString: function() {
1074
+ return (a == 1) ?
1075
+ "rgb(" + mathRound(r) + ", " + mathRound(g) + ", " + mathRound(b) + ")" :
1076
+ "rgba(" + mathRound(r) + ", " + mathRound(g) + ", " + mathRound(b) + ", " + roundA + ")";
1077
+ },
1078
+ toPercentageRgb: function() {
1079
+ return { r: mathRound(bound01(r, 255) * 100) + "%", g: mathRound(bound01(g, 255) * 100) + "%", b: mathRound(bound01(b, 255) * 100) + "%", a: a };
1080
+ },
1081
+ toPercentageRgbString: function() {
1082
+ return (a == 1) ?
1083
+ "rgb(" + mathRound(bound01(r, 255) * 100) + "%, " + mathRound(bound01(g, 255) * 100) + "%, " + mathRound(bound01(b, 255) * 100) + "%)" :
1084
+ "rgba(" + mathRound(bound01(r, 255) * 100) + "%, " + mathRound(bound01(g, 255) * 100) + "%, " + mathRound(bound01(b, 255) * 100) + "%, " + roundA + ")";
1085
+ },
1086
+ toName: function() {
1087
+ return hexNames[rgbToHex(r, g, b, true)] || false;
1088
+ },
1089
+ toFilter: function(secondColor) {
1090
+ var hex = rgbToHex(r, g, b);
1091
+ var secondHex = hex;
1092
+ var alphaHex = Math.round(parseFloat(a) * 255).toString(16);
1093
+ var secondAlphaHex = alphaHex;
1094
+ var gradientType = opts && opts.gradientType ? "GradientType = 1, " : "";
1095
+
1096
+ if (secondColor) {
1097
+ var s = tinycolor(secondColor);
1098
+ secondHex = s.toHex();
1099
+ secondAlphaHex = Math.round(parseFloat(s.alpha) * 255).toString(16);
1100
+ }
1101
+
1102
+ return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr=#" + pad2(alphaHex) + hex + ",endColorstr=#" + pad2(secondAlphaHex) + secondHex + ")";
1103
+ },
1104
+ toString: function(format) {
1105
+ format = format || this.format;
1106
+ var formattedString = false;
1107
+ if (format === "rgb") {
1108
+ formattedString = this.toRgbString();
1109
+ }
1110
+ if (format === "prgb") {
1111
+ formattedString = this.toPercentageRgbString();
1112
+ }
1113
+ if (format === "hex" || format === "hex6") {
1114
+ formattedString = this.toHexString();
1115
+ }
1116
+ if (format === "hex3") {
1117
+ formattedString = this.toHexString(true);
1118
+ }
1119
+ if (format === "name") {
1120
+ formattedString = this.toName();
1121
+ }
1122
+ if (format === "hsl") {
1123
+ formattedString = this.toHslString();
1124
+ }
1125
+ if (format === "hsv") {
1126
+ formattedString = this.toHsvString();
1127
+ }
1128
+
1129
+ return formattedString || this.toHexString();
1130
+ }
1131
+ };
1132
+ }
1133
+
1134
+ // If input is an object, force 1 into "1.0" to handle ratios properly
1135
+ // String input requires "1.0" as input, so 1 will be treated as 1
1136
+ tinycolor.fromRatio = function(color, opts) {
1137
+ if (typeof color == "object") {
1138
+ var newColor = {};
1139
+ for (var i in color) {
1140
+ if (color.hasOwnProperty(i)) {
1141
+ if (i === "a") {
1142
+ newColor[i] = color[i];
1143
+ }
1144
+ else {
1145
+ newColor[i] = convertToPercentage(color[i]);
1146
+ }
1147
+ }
1148
+ }
1149
+ color = newColor;
1150
+ }
1151
+
1152
+ return tinycolor(color, opts);
1153
+ };
1154
+
1155
+ // Given a string or object, convert that input to RGB
1156
+ // Possible string inputs:
1157
+ //
1158
+ // "red"
1159
+ // "#f00" or "f00"
1160
+ // "#ff0000" or "ff0000"
1161
+ // "rgb 255 0 0" or "rgb (255, 0, 0)"
1162
+ // "rgb 1.0 0 0" or "rgb (1, 0, 0)"
1163
+ // "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1"
1164
+ // "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1"
1165
+ // "hsl(0, 100%, 50%)" or "hsl 0 100% 50%"
1166
+ // "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1"
1167
+ // "hsv(0, 100%, 100%)" or "hsv 0 100% 100%"
1168
+ //
1169
+ function inputToRGB(color) {
1170
+
1171
+ var rgb = { r: 0, g: 0, b: 0 };
1172
+ var a = 1;
1173
+ var ok = false;
1174
+ var format = false;
1175
+
1176
+ if (typeof color == "string") {
1177
+ color = stringInputToObject(color);
1178
+ }
1179
+
1180
+ if (typeof color == "object") {
1181
+ if (color.hasOwnProperty("r") && color.hasOwnProperty("g") && color.hasOwnProperty("b")) {
1182
+ rgb = rgbToRgb(color.r, color.g, color.b);
1183
+ ok = true;
1184
+ format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
1185
+ }
1186
+ else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("v")) {
1187
+ color.s = convertToPercentage(color.s);
1188
+ color.v = convertToPercentage(color.v);
1189
+ rgb = hsvToRgb(color.h, color.s, color.v);
1190
+ ok = true;
1191
+ format = "hsv";
1192
+ }
1193
+ else if (color.hasOwnProperty("h") && color.hasOwnProperty("s") && color.hasOwnProperty("l")) {
1194
+ color.s = convertToPercentage(color.s);
1195
+ color.l = convertToPercentage(color.l);
1196
+ rgb = hslToRgb(color.h, color.s, color.l);
1197
+ ok = true;
1198
+ format = "hsl";
1199
+ }
1200
+
1201
+ if (color.hasOwnProperty("a")) {
1202
+ a = color.a;
1203
+ }
1204
+ }
1205
+
1206
+ a = parseFloat(a);
1207
+
1208
+ // Handle invalid alpha characters by setting to 1
1209
+ if (isNaN(a) || a < 0 || a > 1) {
1210
+ a = 1;
1211
+ }
1212
+
1213
+ return {
1214
+ ok: ok,
1215
+ format: color.format || format,
1216
+ r: mathMin(255, mathMax(rgb.r, 0)),
1217
+ g: mathMin(255, mathMax(rgb.g, 0)),
1218
+ b: mathMin(255, mathMax(rgb.b, 0)),
1219
+ a: a
1220
+ };
1221
+ }
1222
+
1223
+
1224
+
1225
+ // Conversion Functions
1226
+ // --------------------
1227
+
1228
+ // `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:
1229
+ // <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>
1230
+
1231
+ // `rgbToRgb`
1232
+ // Handle bounds / percentage checking to conform to CSS color spec
1233
+ // <http://www.w3.org/TR/css3-color/>
1234
+ // *Assumes:* r, g, b in [0, 255] or [0, 1]
1235
+ // *Returns:* { r, g, b } in [0, 255]
1236
+ function rgbToRgb(r, g, b){
1237
+ return {
1238
+ r: bound01(r, 255) * 255,
1239
+ g: bound01(g, 255) * 255,
1240
+ b: bound01(b, 255) * 255
1241
+ };
1242
+ }
1243
+
1244
+ // `rgbToHsl`
1245
+ // Converts an RGB color value to HSL.
1246
+ // *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]
1247
+ // *Returns:* { h, s, l } in [0,1]
1248
+ function rgbToHsl(r, g, b) {
1249
+
1250
+ r = bound01(r, 255);
1251
+ g = bound01(g, 255);
1252
+ b = bound01(b, 255);
1253
+
1254
+ var max = mathMax(r, g, b), min = mathMin(r, g, b);
1255
+ var h, s, l = (max + min) / 2;
1256
+
1257
+ if(max == min) {
1258
+ h = s = 0; // achromatic
1259
+ }
1260
+ else {
1261
+ var d = max - min;
1262
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
1263
+ switch(max) {
1264
+ case r: h = (g - b) / d + (g < b ? 6 : 0); break;
1265
+ case g: h = (b - r) / d + 2; break;
1266
+ case b: h = (r - g) / d + 4; break;
1267
+ }
1268
+
1269
+ h /= 6;
1270
+ }
1271
+
1272
+ return { h: h, s: s, l: l };
1273
+ }
1274
+
1275
+ // `hslToRgb`
1276
+ // Converts an HSL color value to RGB.
1277
+ // *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]
1278
+ // *Returns:* { r, g, b } in the set [0, 255]
1279
+ function hslToRgb(h, s, l) {
1280
+ var r, g, b;
1281
+
1282
+ h = bound01(h, 360);
1283
+ s = bound01(s, 100);
1284
+ l = bound01(l, 100);
1285
+
1286
+ function hue2rgb(p, q, t) {
1287
+ if(t < 0) t += 1;
1288
+ if(t > 1) t -= 1;
1289
+ if(t < 1/6) return p + (q - p) * 6 * t;
1290
+ if(t < 1/2) return q;
1291
+ if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
1292
+ return p;
1293
+ }
1294
+
1295
+ if(s === 0) {
1296
+ r = g = b = l; // achromatic
1297
+ }
1298
+ else {
1299
+ var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
1300
+ var p = 2 * l - q;
1301
+ r = hue2rgb(p, q, h + 1/3);
1302
+ g = hue2rgb(p, q, h);
1303
+ b = hue2rgb(p, q, h - 1/3);
1304
+ }
1305
+
1306
+ return { r: r * 255, g: g * 255, b: b * 255 };
1307
+ }
1308
+
1309
+ // `rgbToHsv`
1310
+ // Converts an RGB color value to HSV
1311
+ // *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]
1312
+ // *Returns:* { h, s, v } in [0,1]
1313
+ function rgbToHsv(r, g, b) {
1314
+
1315
+ r = bound01(r, 255);
1316
+ g = bound01(g, 255);
1317
+ b = bound01(b, 255);
1318
+
1319
+ var max = mathMax(r, g, b), min = mathMin(r, g, b);
1320
+ var h, s, v = max;
1321
+
1322
+ var d = max - min;
1323
+ s = max === 0 ? 0 : d / max;
1324
+
1325
+ if(max == min) {
1326
+ h = 0; // achromatic
1327
+ }
1328
+ else {
1329
+ switch(max) {
1330
+ case r: h = (g - b) / d + (g < b ? 6 : 0); break;
1331
+ case g: h = (b - r) / d + 2; break;
1332
+ case b: h = (r - g) / d + 4; break;
1333
+ }
1334
+ h /= 6;
1335
+ }
1336
+ return { h: h, s: s, v: v };
1337
+ }
1338
+
1339
+ // `hsvToRgb`
1340
+ // Converts an HSV color value to RGB.
1341
+ // *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]
1342
+ // *Returns:* { r, g, b } in the set [0, 255]
1343
+ function hsvToRgb(h, s, v) {
1344
+
1345
+ h = bound01(h, 360) * 6;
1346
+ s = bound01(s, 100);
1347
+ v = bound01(v, 100);
1348
+
1349
+ var i = math.floor(h),
1350
+ f = h - i,
1351
+ p = v * (1 - s),
1352
+ q = v * (1 - f * s),
1353
+ t = v * (1 - (1 - f) * s),
1354
+ mod = i % 6,
1355
+ r = [v, q, p, p, t, v][mod],
1356
+ g = [t, v, v, q, p, p][mod],
1357
+ b = [p, p, t, v, v, q][mod];
1358
+
1359
+ return { r: r * 255, g: g * 255, b: b * 255 };
1360
+ }
1361
+
1362
+ // `rgbToHex`
1363
+ // Converts an RGB color to hex
1364
+ // Assumes r, g, and b are contained in the set [0, 255]
1365
+ // Returns a 3 or 6 character hex
1366
+ function rgbToHex(r, g, b, allow3Char) {
1367
+
1368
+ var hex = [
1369
+ pad2(mathRound(r).toString(16)),
1370
+ pad2(mathRound(g).toString(16)),
1371
+ pad2(mathRound(b).toString(16))
1372
+ ];
1373
+
1374
+ // Return a 3 character hex if possible
1375
+ if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {
1376
+ return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
1377
+ }
1378
+
1379
+ return hex.join("");
1380
+ }
1381
+
1382
+ // `equals`
1383
+ // Can be called with any tinycolor input
1384
+ tinycolor.equals = function (color1, color2) {
1385
+ if (!color1 || !color2) { return false; }
1386
+ return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();
1387
+ };
1388
+ tinycolor.random = function() {
1389
+ return tinycolor.fromRatio({
1390
+ r: mathRandom(),
1391
+ g: mathRandom(),
1392
+ b: mathRandom()
1393
+ });
1394
+ };
1395
+
1396
+
1397
+ // Modification Functions
1398
+ // ----------------------
1399
+ // Thanks to less.js for some of the basics here
1400
+ // <https://github.com/cloudhead/less.js/blob/master/lib/less/functions.js>
1401
+
1402
+
1403
+ tinycolor.desaturate = function (color, amount) {
1404
+ var hsl = tinycolor(color).toHsl();
1405
+ hsl.s -= ((amount || 10) / 100);
1406
+ hsl.s = clamp01(hsl.s);
1407
+ return tinycolor(hsl);
1408
+ };
1409
+ tinycolor.saturate = function (color, amount) {
1410
+ var hsl = tinycolor(color).toHsl();
1411
+ hsl.s += ((amount || 10) / 100);
1412
+ hsl.s = clamp01(hsl.s);
1413
+ return tinycolor(hsl);
1414
+ };
1415
+ tinycolor.greyscale = function(color) {
1416
+ return tinycolor.desaturate(color, 100);
1417
+ };
1418
+ tinycolor.lighten = function(color, amount) {
1419
+ var hsl = tinycolor(color).toHsl();
1420
+ hsl.l += ((amount || 10) / 100);
1421
+ hsl.l = clamp01(hsl.l);
1422
+ return tinycolor(hsl);
1423
+ };
1424
+ tinycolor.darken = function (color, amount) {
1425
+ var hsl = tinycolor(color).toHsl();
1426
+ hsl.l -= ((amount || 10) / 100);
1427
+ hsl.l = clamp01(hsl.l);
1428
+ return tinycolor(hsl);
1429
+ };
1430
+ tinycolor.complement = function(color) {
1431
+ var hsl = tinycolor(color).toHsl();
1432
+ hsl.h = (hsl.h + 180) % 360;
1433
+ return tinycolor(hsl);
1434
+ };
1435
+
1436
+
1437
+ // Combination Functions
1438
+ // ---------------------
1439
+ // Thanks to jQuery xColor for some of the ideas behind these
1440
+ // <https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js>
1441
+
1442
+ tinycolor.triad = function(color) {
1443
+ var hsl = tinycolor(color).toHsl();
1444
+ var h = hsl.h;
1445
+ return [
1446
+ tinycolor(color),
1447
+ tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),
1448
+ tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })
1449
+ ];
1450
+ };
1451
+ tinycolor.tetrad = function(color) {
1452
+ var hsl = tinycolor(color).toHsl();
1453
+ var h = hsl.h;
1454
+ return [
1455
+ tinycolor(color),
1456
+ tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),
1457
+ tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),
1458
+ tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })
1459
+ ];
1460
+ };
1461
+ tinycolor.splitcomplement = function(color) {
1462
+ var hsl = tinycolor(color).toHsl();
1463
+ var h = hsl.h;
1464
+ return [
1465
+ tinycolor(color),
1466
+ tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),
1467
+ tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})
1468
+ ];
1469
+ };
1470
+ tinycolor.analogous = function(color, results, slices) {
1471
+ results = results || 6;
1472
+ slices = slices || 30;
1473
+
1474
+ var hsl = tinycolor(color).toHsl();
1475
+ var part = 360 / slices;
1476
+ var ret = [tinycolor(color)];
1477
+
1478
+ for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {
1479
+ hsl.h = (hsl.h + part) % 360;
1480
+ ret.push(tinycolor(hsl));
1481
+ }
1482
+ return ret;
1483
+ };
1484
+ tinycolor.monochromatic = function(color, results) {
1485
+ results = results || 6;
1486
+ var hsv = tinycolor(color).toHsv();
1487
+ var h = hsv.h, s = hsv.s, v = hsv.v;
1488
+ var ret = [];
1489
+ var modification = 1 / results;
1490
+
1491
+ while (results--) {
1492
+ ret.push(tinycolor({ h: h, s: s, v: v}));
1493
+ v = (v + modification) % 1;
1494
+ }
1495
+
1496
+ return ret;
1497
+ };
1498
+
1499
+ // Readability Functions
1500
+ // ---------------------
1501
+ // <http://www.w3.org/TR/AERT#color-contrast>
1502
+
1503
+ // `readability`
1504
+ // Analyze the 2 colors and returns an object with the following properties:
1505
+ // `brightness`: difference in brightness between the two colors
1506
+ // `color`: difference in color/hue between the two colors
1507
+ tinycolor.readability = function(color1, color2) {
1508
+ var a = tinycolor(color1).toRgb();
1509
+ var b = tinycolor(color2).toRgb();
1510
+ var brightnessA = (a.r * 299 + a.g * 587 + a.b * 114) / 1000;
1511
+ var brightnessB = (b.r * 299 + b.g * 587 + b.b * 114) / 1000;
1512
+ var colorDiff = (
1513
+ Math.max(a.r, b.r) - Math.min(a.r, b.r) +
1514
+ Math.max(a.g, b.g) - Math.min(a.g, b.g) +
1515
+ Math.max(a.b, b.b) - Math.min(a.b, b.b)
1516
+ );
1517
+
1518
+ return {
1519
+ brightness: Math.abs(brightnessA - brightnessB),
1520
+ color: colorDiff
1521
+ };
1522
+ };
1523
+
1524
+ // `readable`
1525
+ // http://www.w3.org/TR/AERT#color-contrast
1526
+ // Ensure that foreground and background color combinations provide sufficient contrast.
1527
+ // *Example*
1528
+ // tinycolor.readable("#000", "#111") => false
1529
+ tinycolor.readable = function(color1, color2) {
1530
+ var readability = tinycolor.readability(color1, color2);
1531
+ return readability.brightness > 125 && readability.color > 500;
1532
+ };
1533
+
1534
+ // `mostReadable`
1535
+ // Given a base color and a list of possible foreground or background
1536
+ // colors for that base, returns the most readable color.
1537
+ // *Example*
1538
+ // tinycolor.mostReadable("#123", ["#fff", "#000"]) => "#000"
1539
+ tinycolor.mostReadable = function(baseColor, colorList) {
1540
+ var bestColor = null;
1541
+ var bestScore = 0;
1542
+ var bestIsReadable = false;
1543
+ for (var i=0; i < colorList.length; i++) {
1544
+
1545
+ // We normalize both around the "acceptable" breaking point,
1546
+ // but rank brightness constrast higher than hue.
1547
+
1548
+ var readability = tinycolor.readability(baseColor, colorList[i]);
1549
+ var readable = readability.brightness > 125 && readability.color > 500;
1550
+ var score = 3 * (readability.brightness / 125) + (readability.color / 500);
1551
+
1552
+ if ((readable && ! bestIsReadable) ||
1553
+ (readable && bestIsReadable && score > bestScore) ||
1554
+ ((! readable) && (! bestIsReadable) && score > bestScore)) {
1555
+ bestIsReadable = readable;
1556
+ bestScore = score;
1557
+ bestColor = tinycolor(colorList[i]);
1558
+ }
1559
+ }
1560
+ return bestColor;
1561
+ };
1562
+
1563
+
1564
+ // Big List of Colors
1565
+ // ------------------
1566
+ // <http://www.w3.org/TR/css3-color/#svg-color>
1567
+ var names = tinycolor.names = {
1568
+ aliceblue: "f0f8ff",
1569
+ antiquewhite: "faebd7",
1570
+ aqua: "0ff",
1571
+ aquamarine: "7fffd4",
1572
+ azure: "f0ffff",
1573
+ beige: "f5f5dc",
1574
+ bisque: "ffe4c4",
1575
+ black: "000",
1576
+ blanchedalmond: "ffebcd",
1577
+ blue: "00f",
1578
+ blueviolet: "8a2be2",
1579
+ brown: "a52a2a",
1580
+ burlywood: "deb887",
1581
+ burntsienna: "ea7e5d",
1582
+ cadetblue: "5f9ea0",
1583
+ chartreuse: "7fff00",
1584
+ chocolate: "d2691e",
1585
+ coral: "ff7f50",
1586
+ cornflowerblue: "6495ed",
1587
+ cornsilk: "fff8dc",
1588
+ crimson: "dc143c",
1589
+ cyan: "0ff",
1590
+ darkblue: "00008b",
1591
+ darkcyan: "008b8b",
1592
+ darkgoldenrod: "b8860b",
1593
+ darkgray: "a9a9a9",
1594
+ darkgreen: "006400",
1595
+ darkgrey: "a9a9a9",
1596
+ darkkhaki: "bdb76b",
1597
+ darkmagenta: "8b008b",
1598
+ darkolivegreen: "556b2f",
1599
+ darkorange: "ff8c00",
1600
+ darkorchid: "9932cc",
1601
+ darkred: "8b0000",
1602
+ darksalmon: "e9967a",
1603
+ darkseagreen: "8fbc8f",
1604
+ darkslateblue: "483d8b",
1605
+ darkslategray: "2f4f4f",
1606
+ darkslategrey: "2f4f4f",
1607
+ darkturquoise: "00ced1",
1608
+ darkviolet: "9400d3",
1609
+ deeppink: "ff1493",
1610
+ deepskyblue: "00bfff",
1611
+ dimgray: "696969",
1612
+ dimgrey: "696969",
1613
+ dodgerblue: "1e90ff",
1614
+ firebrick: "b22222",
1615
+ floralwhite: "fffaf0",
1616
+ forestgreen: "228b22",
1617
+ fuchsia: "f0f",
1618
+ gainsboro: "dcdcdc",
1619
+ ghostwhite: "f8f8ff",
1620
+ gold: "ffd700",
1621
+ goldenrod: "daa520",
1622
+ gray: "808080",
1623
+ green: "008000",
1624
+ greenyellow: "adff2f",
1625
+ grey: "808080",
1626
+ honeydew: "f0fff0",
1627
+ hotpink: "ff69b4",
1628
+ indianred: "cd5c5c",
1629
+ indigo: "4b0082",
1630
+ ivory: "fffff0",
1631
+ khaki: "f0e68c",
1632
+ lavender: "e6e6fa",
1633
+ lavenderblush: "fff0f5",
1634
+ lawngreen: "7cfc00",
1635
+ lemonchiffon: "fffacd",
1636
+ lightblue: "add8e6",
1637
+ lightcoral: "f08080",
1638
+ lightcyan: "e0ffff",
1639
+ lightgoldenrodyellow: "fafad2",
1640
+ lightgray: "d3d3d3",
1641
+ lightgreen: "90ee90",
1642
+ lightgrey: "d3d3d3",
1643
+ lightpink: "ffb6c1",
1644
+ lightsalmon: "ffa07a",
1645
+ lightseagreen: "20b2aa",
1646
+ lightskyblue: "87cefa",
1647
+ lightslategray: "789",
1648
+ lightslategrey: "789",
1649
+ lightsteelblue: "b0c4de",
1650
+ lightyellow: "ffffe0",
1651
+ lime: "0f0",
1652
+ limegreen: "32cd32",
1653
+ linen: "faf0e6",
1654
+ magenta: "f0f",
1655
+ maroon: "800000",
1656
+ mediumaquamarine: "66cdaa",
1657
+ mediumblue: "0000cd",
1658
+ mediumorchid: "ba55d3",
1659
+ mediumpurple: "9370db",
1660
+ mediumseagreen: "3cb371",
1661
+ mediumslateblue: "7b68ee",
1662
+ mediumspringgreen: "00fa9a",
1663
+ mediumturquoise: "48d1cc",
1664
+ mediumvioletred: "c71585",
1665
+ midnightblue: "191970",
1666
+ mintcream: "f5fffa",
1667
+ mistyrose: "ffe4e1",
1668
+ moccasin: "ffe4b5",
1669
+ navajowhite: "ffdead",
1670
+ navy: "000080",
1671
+ oldlace: "fdf5e6",
1672
+ olive: "808000",
1673
+ olivedrab: "6b8e23",
1674
+ orange: "ffa500",
1675
+ orangered: "ff4500",
1676
+ orchid: "da70d6",
1677
+ palegoldenrod: "eee8aa",
1678
+ palegreen: "98fb98",
1679
+ paleturquoise: "afeeee",
1680
+ palevioletred: "db7093",
1681
+ papayawhip: "ffefd5",
1682
+ peachpuff: "ffdab9",
1683
+ peru: "cd853f",
1684
+ pink: "ffc0cb",
1685
+ plum: "dda0dd",
1686
+ powderblue: "b0e0e6",
1687
+ purple: "800080",
1688
+ red: "f00",
1689
+ rosybrown: "bc8f8f",
1690
+ royalblue: "4169e1",
1691
+ saddlebrown: "8b4513",
1692
+ salmon: "fa8072",
1693
+ sandybrown: "f4a460",
1694
+ seagreen: "2e8b57",
1695
+ seashell: "fff5ee",
1696
+ sienna: "a0522d",
1697
+ silver: "c0c0c0",
1698
+ skyblue: "87ceeb",
1699
+ slateblue: "6a5acd",
1700
+ slategray: "708090",
1701
+ slategrey: "708090",
1702
+ snow: "fffafa",
1703
+ springgreen: "00ff7f",
1704
+ steelblue: "4682b4",
1705
+ tan: "d2b48c",
1706
+ teal: "008080",
1707
+ thistle: "d8bfd8",
1708
+ tomato: "ff6347",
1709
+ turquoise: "40e0d0",
1710
+ violet: "ee82ee",
1711
+ wheat: "f5deb3",
1712
+ white: "fff",
1713
+ whitesmoke: "f5f5f5",
1714
+ yellow: "ff0",
1715
+ yellowgreen: "9acd32"
1716
+ };
1717
+
1718
+ // Make it easy to access colors via `hexNames[hex]`
1719
+ var hexNames = tinycolor.hexNames = flip(names);
1720
+
1721
+
1722
+ // Utilities
1723
+ // ---------
1724
+
1725
+ // `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`
1726
+ function flip(o) {
1727
+ var flipped = { };
1728
+ for (var i in o) {
1729
+ if (o.hasOwnProperty(i)) {
1730
+ flipped[o[i]] = i;
1731
+ }
1732
+ }
1733
+ return flipped;
1734
+ }
1735
+
1736
+ // Take input from [0, n] and return it as [0, 1]
1737
+ function bound01(n, max) {
1738
+ if (isOnePointZero(n)) { n = "100%"; }
1739
+
1740
+ var processPercent = isPercentage(n);
1741
+ n = mathMin(max, mathMax(0, parseFloat(n)));
1742
+
1743
+ // Automatically convert percentage into number
1744
+ if (processPercent) {
1745
+ n = parseInt(n * max, 10) / 100;
1746
+ }
1747
+
1748
+ // Handle floating point rounding errors
1749
+ if ((math.abs(n - max) < 0.000001)) {
1750
+ return 1;
1751
+ }
1752
+
1753
+ // Convert into [0, 1] range if it isn't already
1754
+ return (n % max) / parseFloat(max);
1755
+ }
1756
+
1757
+ // Force a number between 0 and 1
1758
+ function clamp01(val) {
1759
+ return mathMin(1, mathMax(0, val));
1760
+ }
1761
+
1762
+ // Parse an integer into hex
1763
+ function parseHex(val) {
1764
+ return parseInt(val, 16);
1765
+ }
1766
+
1767
+ // Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1
1768
+ // <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>
1769
+ function isOnePointZero(n) {
1770
+ return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1;
1771
+ }
1772
+
1773
+ // Check to see if string passed in is a percentage
1774
+ function isPercentage(n) {
1775
+ return typeof n === "string" && n.indexOf('%') != -1;
1776
+ }
1777
+
1778
+ // Force a hex value to have 2 characters
1779
+ function pad2(c) {
1780
+ return c.length == 1 ? '0' + c : '' + c;
1781
+ }
1782
+
1783
+ // Replace a decimal with it's percentage value
1784
+ function convertToPercentage(n) {
1785
+ if (n <= 1) {
1786
+ n = (n * 100) + "%";
1787
+ }
1788
+
1789
+ return n;
1790
+ }
1791
+
1792
+ var matchers = (function() {
1793
+
1794
+ // <http://www.w3.org/TR/css3-values/#integers>
1795
+ var CSS_INTEGER = "[-\\+]?\\d+%?";
1796
+
1797
+ // <http://www.w3.org/TR/css3-values/#number-value>
1798
+ var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
1799
+
1800
+ // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.
1801
+ var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")";
1802
+
1803
+ // Actual matching.
1804
+ // Parentheses and commas are optional, but not required.
1805
+ // Whitespace can take the place of commas or opening paren
1806
+ var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
1807
+ var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?";
1808
+
1809
+ return {
1810
+ rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
1811
+ rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
1812
+ hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
1813
+ hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
1814
+ hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
1815
+ hex3: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
1816
+ hex6: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
1817
+ };
1818
+ })();
1819
+
1820
+ // `stringInputToObject`
1821
+ // Permissive string parsing. Take in a number of formats, and output an object
1822
+ // based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`
1823
+ function stringInputToObject(color) {
1824
+
1825
+ color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();
1826
+ var named = false;
1827
+ if (names[color]) {
1828
+ color = names[color];
1829
+ named = true;
1830
+ }
1831
+ else if (color == 'transparent') {
1832
+ return { r: 0, g: 0, b: 0, a: 0 };
1833
+ }
1834
+
1835
+ // Try to match string input using regular expressions.
1836
+ // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]
1837
+ // Just return an object and let the conversion functions handle that.
1838
+ // This way the result will be the same whether the tinycolor is initialized with string or object.
1839
+ var match;
1840
+ if ((match = matchers.rgb.exec(color))) {
1841
+ return { r: match[1], g: match[2], b: match[3] };
1842
+ }
1843
+ if ((match = matchers.rgba.exec(color))) {
1844
+ return { r: match[1], g: match[2], b: match[3], a: match[4] };
1845
+ }
1846
+ if ((match = matchers.hsl.exec(color))) {
1847
+ return { h: match[1], s: match[2], l: match[3] };
1848
+ }
1849
+ if ((match = matchers.hsla.exec(color))) {
1850
+ return { h: match[1], s: match[2], l: match[3], a: match[4] };
1851
+ }
1852
+ if ((match = matchers.hsv.exec(color))) {
1853
+ return { h: match[1], s: match[2], v: match[3] };
1854
+ }
1855
+ if ((match = matchers.hex6.exec(color))) {
1856
+ return {
1857
+ r: parseHex(match[1]),
1858
+ g: parseHex(match[2]),
1859
+ b: parseHex(match[3]),
1860
+ format: named ? "name" : "hex"
1861
+ };
1862
+ }
1863
+ if ((match = matchers.hex3.exec(color))) {
1864
+ return {
1865
+ r: parseHex(match[1] + '' + match[1]),
1866
+ g: parseHex(match[2] + '' + match[2]),
1867
+ b: parseHex(match[3] + '' + match[3]),
1868
+ format: named ? "name" : "hex"
1869
+ };
1870
+ }
1871
+
1872
+ return false;
1873
+ }
1874
+
1875
+ root.tinycolor = tinycolor;
1876
+
1877
+ })(this);
1878
+
1879
+ $(function () {
1880
+ if ($.fn.spectrum.load) {
1881
+ $.fn.spectrum.processNativeColorInputs();
1882
+ }
1883
+
1884
+ $.fn.spectrum.get = function(id) {
1885
+ return spectrums[id];
1886
+ };
1887
+ });
1888
+
1889
+ })(window, jQuery);