adminlte_rails 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +5 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +6 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +51 -0
  8. data/Rakefile +10 -0
  9. data/adminlte_rails.gemspec +27 -0
  10. data/bin/console +14 -0
  11. data/bin/setup +8 -0
  12. data/lib/adminlte_rails.rb +5 -0
  13. data/lib/adminlte_rails/engine.rb +7 -0
  14. data/lib/adminlte_rails/version.rb +3 -0
  15. data/vendor/assets/javascripts/adminlte.js +3 -0
  16. data/vendor/assets/javascripts/adminlte.min.js +3 -0
  17. data/vendor/assets/javascripts/adminlte/adminlte.js +1129 -0
  18. data/vendor/assets/javascripts/adminlte/adminlte.min.js +14 -0
  19. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-colorpicker/bootstrap-colorpicker.js +1319 -0
  20. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-colorpicker/bootstrap-colorpicker.min.js +5 -0
  21. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker.js +2030 -0
  22. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker.min.js +8 -0
  23. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-daterangepicker/bootstrap-daterangepicker.js +1653 -0
  24. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-slider/bootstrap-slider.js +427 -0
  25. data/vendor/assets/javascripts/adminlte/plugins/bootstrap-timepicker/bootstrap-timepicker.js +1177 -0
  26. data/vendor/assets/javascripts/adminlte/plugins/bootstrap/bootstrap.js +2377 -0
  27. data/vendor/assets/javascripts/adminlte/plugins/bootstrap/bootstrap.min.js +7 -0
  28. data/vendor/assets/javascripts/adminlte/plugins/jquery/jquery.js +10364 -0
  29. data/vendor/assets/javascripts/adminlte/plugins/jquery/jquery.min.js +2 -0
  30. data/vendor/assets/javascripts/adminlte/plugins/select2/.bower.json +24 -0
  31. data/vendor/assets/javascripts/adminlte/plugins/select2/.editorconfig +6 -0
  32. data/vendor/assets/javascripts/adminlte/plugins/select2/.github/CONTRIBUTING.md +203 -0
  33. data/vendor/assets/javascripts/adminlte/plugins/select2/.github/ISSUE_TEMPLATE.md +20 -0
  34. data/vendor/assets/javascripts/adminlte/plugins/select2/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  35. data/vendor/assets/javascripts/adminlte/plugins/select2/.gitignore +3 -0
  36. data/vendor/assets/javascripts/adminlte/plugins/select2/.jshintignore +4 -0
  37. data/vendor/assets/javascripts/adminlte/plugins/select2/.jshintrc +25 -0
  38. data/vendor/assets/javascripts/adminlte/plugins/select2/.travis.yml +22 -0
  39. data/vendor/assets/javascripts/adminlte/plugins/select2/CHANGELOG.md +272 -0
  40. data/vendor/assets/javascripts/adminlte/plugins/select2/Gruntfile.js +380 -0
  41. data/vendor/assets/javascripts/adminlte/plugins/select2/LICENSE.md +21 -0
  42. data/vendor/assets/javascripts/adminlte/plugins/select2/README.md +123 -0
  43. data/vendor/assets/javascripts/adminlte/plugins/select2/bower.json +13 -0
  44. data/vendor/assets/javascripts/adminlte/plugins/select2/component.json +19 -0
  45. data/vendor/assets/javascripts/adminlte/plugins/select2/composer.json +25 -0
  46. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/css/select2.css +484 -0
  47. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/css/select2.min.css +1 -0
  48. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/af.js +3 -0
  49. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ar.js +3 -0
  50. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/az.js +3 -0
  51. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/bg.js +3 -0
  52. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/bs.js +3 -0
  53. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ca.js +3 -0
  54. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/cs.js +3 -0
  55. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/da.js +3 -0
  56. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/de.js +3 -0
  57. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/dsb.js +3 -0
  58. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/el.js +3 -0
  59. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/en.js +3 -0
  60. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/es.js +3 -0
  61. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/et.js +3 -0
  62. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/eu.js +3 -0
  63. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/fa.js +3 -0
  64. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/fi.js +3 -0
  65. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/fr.js +3 -0
  66. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/gl.js +3 -0
  67. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/he.js +3 -0
  68. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/hi.js +3 -0
  69. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/hr.js +3 -0
  70. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/hsb.js +3 -0
  71. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/hu.js +3 -0
  72. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/hy.js +3 -0
  73. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/id.js +3 -0
  74. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/is.js +3 -0
  75. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/it.js +3 -0
  76. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ja.js +3 -0
  77. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/km.js +3 -0
  78. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ko.js +3 -0
  79. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/lt.js +3 -0
  80. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/lv.js +3 -0
  81. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/mk.js +3 -0
  82. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ms.js +3 -0
  83. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/nb.js +3 -0
  84. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/nl.js +3 -0
  85. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/pl.js +3 -0
  86. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ps.js +3 -0
  87. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/pt-BR.js +3 -0
  88. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/pt.js +3 -0
  89. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ro.js +3 -0
  90. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/ru.js +3 -0
  91. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/sk.js +3 -0
  92. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/sl.js +3 -0
  93. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/sr-Cyrl.js +3 -0
  94. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/sr.js +3 -0
  95. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/sv.js +3 -0
  96. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/th.js +3 -0
  97. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/tr.js +3 -0
  98. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/uk.js +3 -0
  99. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/vi.js +3 -0
  100. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/zh-CN.js +3 -0
  101. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/i18n/zh-TW.js +3 -0
  102. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/select2.full.js +6457 -0
  103. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/select2.full.min.js +1 -0
  104. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/select2.js +5746 -0
  105. data/vendor/assets/javascripts/adminlte/plugins/select2/dist/js/select2.min.js +1 -0
  106. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/README.md +1 -0
  107. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/announcements-4.0.html +12 -0
  108. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/community.html +12 -0
  109. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/examples.html +12 -0
  110. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/index.html +12 -0
  111. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/options-old.html +12 -0
  112. data/vendor/assets/javascripts/adminlte/plugins/select2/docs/options.html +12 -0
  113. data/vendor/assets/javascripts/adminlte/plugins/select2/package.json +73 -0
  114. data/vendor/assets/javascripts/adminlte/plugins/select2/select2.jquery.json +32 -0
  115. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/banner.end.js +6 -0
  116. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/banner.start.js +6 -0
  117. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/jquery.mousewheel.shim.js +6 -0
  118. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/jquery.select2.js +57 -0
  119. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/jquery.shim.js +14 -0
  120. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/containerCss.js +56 -0
  121. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/dropdownCss.js +56 -0
  122. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/initSelection.js +42 -0
  123. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/inputData.js +127 -0
  124. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/matcher.js +42 -0
  125. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/query.js +26 -0
  126. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/compat/utils.js +43 -0
  127. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/core.js +612 -0
  128. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/ajax.js +109 -0
  129. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/array.js +79 -0
  130. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/base.js +40 -0
  131. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/maximumInputLength.js +31 -0
  132. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/maximumSelectionLength.js +31 -0
  133. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/minimumInputLength.js +30 -0
  134. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/select.js +285 -0
  135. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/tags.js +128 -0
  136. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/data/tokenizer.js +116 -0
  137. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/defaults.js +396 -0
  138. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/diacritics.js +847 -0
  139. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown.js +42 -0
  140. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/attachBody.js +222 -0
  141. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/attachContainer.js +18 -0
  142. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/closeOnSelect.js +35 -0
  143. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/hidePlaceholder.js +42 -0
  144. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/infiniteScroll.js +89 -0
  145. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/minimumResultsForSearch.js +39 -0
  146. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/search.js +101 -0
  147. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/selectOnClose.js +50 -0
  148. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/dropdown/stopPropagation.js +38 -0
  149. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/af.js +44 -0
  150. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ar.js +30 -0
  151. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/az.js +27 -0
  152. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/bg.js +47 -0
  153. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/bs.js +55 -0
  154. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ca.js +52 -0
  155. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/cs.js +61 -0
  156. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/da.js +36 -0
  157. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/de.js +40 -0
  158. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/dsb.js +48 -0
  159. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/el.js +52 -0
  160. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/en.js +44 -0
  161. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/es.js +52 -0
  162. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/et.js +53 -0
  163. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/eu.js +51 -0
  164. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/fa.js +38 -0
  165. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/fi.js +30 -0
  166. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/fr.js +33 -0
  167. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/gl.js +39 -0
  168. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/he.js +56 -0
  169. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/hi.js +39 -0
  170. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/hr.js +44 -0
  171. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/hsb.js +48 -0
  172. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/hu.js +30 -0
  173. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/hy.js +38 -0
  174. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/id.js +30 -0
  175. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/is.js +41 -0
  176. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/it.js +48 -0
  177. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ja.js +36 -0
  178. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/km.js +36 -0
  179. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ko.js +36 -0
  180. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/lt.js +52 -0
  181. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/lv.js +51 -0
  182. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/mk.js +47 -0
  183. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ms.js +30 -0
  184. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/nb.js +32 -0
  185. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/nl.js +43 -0
  186. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/pl.js +45 -0
  187. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ps.js +45 -0
  188. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/pt-BR.js +46 -0
  189. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/pt.js +40 -0
  190. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ro.js +46 -0
  191. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/ru.js +58 -0
  192. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/sk.js +59 -0
  193. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/sl.js +54 -0
  194. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/sr-Cyrl.js +55 -0
  195. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/sr.js +55 -0
  196. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/sv.js +37 -0
  197. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/th.js +36 -0
  198. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/tr.js +36 -0
  199. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/uk.js +43 -0
  200. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/vi.js +37 -0
  201. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/zh-CN.js +36 -0
  202. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/i18n/zh-TW.js +33 -0
  203. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/keys.js +25 -0
  204. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/options.js +122 -0
  205. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/results.js +523 -0
  206. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/allowClear.js +97 -0
  207. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/base.js +158 -0
  208. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/clickMask.js +29 -0
  209. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/eventRelay.js +45 -0
  210. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/multiple.js +109 -0
  211. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/placeholder.js +49 -0
  212. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/search.js +222 -0
  213. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/single.js +99 -0
  214. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/selection/stopPropagation.js +38 -0
  215. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/translation.js +36 -0
  216. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/select2/utils.js +276 -0
  217. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/wrapper.end.js +12 -0
  218. data/vendor/assets/javascripts/adminlte/plugins/select2/src/js/wrapper.start.js +38 -0
  219. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/_dropdown.scss +73 -0
  220. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/_multiple.scss +35 -0
  221. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/_single.scss +34 -0
  222. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/core.scss +48 -0
  223. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/mixins/_gradients.scss +13 -0
  224. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/classic/_defaults.scss +34 -0
  225. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/classic/_multiple.scss +93 -0
  226. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/classic/_single.scss +124 -0
  227. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/classic/layout.scss +64 -0
  228. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/default/_multiple.scss +98 -0
  229. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/default/_single.scss +83 -0
  230. data/vendor/assets/javascripts/adminlte/plugins/select2/src/scss/theme/default/layout.scss +97 -0
  231. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/a11y/search-tests.js +51 -0
  232. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/a11y/selection-tests.js +154 -0
  233. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/array-tests.js +318 -0
  234. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/base-tests.js +29 -0
  235. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/inputData-tests.js +158 -0
  236. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/maximumInputLength-tests.js +138 -0
  237. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/maximumSelectionLength-tests.js +202 -0
  238. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/minimumInputLength-tests.js +138 -0
  239. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/select-tests.js +489 -0
  240. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/tags-tests.js +276 -0
  241. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/data/tokenizer-tests.js +219 -0
  242. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/dropdown/dropdownCss-tests.js +104 -0
  243. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/dropdown/positioning-tests.js +177 -0
  244. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/dropdown/selectOnClose-tests.js +137 -0
  245. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/dropdown/stopPropagation-tests.js +33 -0
  246. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/helpers.js +46 -0
  247. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/integration.html +21 -0
  248. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/integration/dom-changes.js +257 -0
  249. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/integration/jquery-calls.js +30 -0
  250. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/integration/select2-methods.js +139 -0
  251. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/options/ajax-tests.js +32 -0
  252. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/options/data-tests.js +44 -0
  253. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/options/deprecated-tests.js +250 -0
  254. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/options/translation-tests.js +28 -0
  255. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/options/width-tests.js +66 -0
  256. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/results/focusing-tests.js +138 -0
  257. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/allowClear-tests.js +218 -0
  258. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/containerCss-tests.js +104 -0
  259. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/multiple-tests.js +149 -0
  260. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/placeholder-tests.js +74 -0
  261. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/search-tests.js +191 -0
  262. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/single-tests.js +117 -0
  263. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/selection/stopPropagation-tests.js +33 -0
  264. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/unit.html +95 -0
  265. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/utils/decorator-tests.js +189 -0
  266. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/utils/escapeMarkup-tests.js +36 -0
  267. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/vendor/jquery-1.7.2.js +9404 -0
  268. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/vendor/qunit-1.23.1.css +305 -0
  269. data/vendor/assets/javascripts/adminlte/plugins/select2/tests/vendor/qunit-1.23.1.js +4334 -0
  270. data/vendor/assets/javascripts/adminlte/plugins/select2/vendor/jquery-2.1.0.js +9111 -0
  271. data/vendor/assets/stylesheets/adminlte.min.scss +27 -0
  272. data/vendor/assets/stylesheets/adminlte.scss +6 -0
  273. data/vendor/assets/stylesheets/adminlte/adminlte.css +4977 -0
  274. data/vendor/assets/stylesheets/adminlte/adminlte.min.css +7 -0
  275. data/vendor/assets/stylesheets/adminlte/fonts/FontAwesome.otf +0 -0
  276. data/vendor/assets/stylesheets/adminlte/fonts/fontawesome-webfont.eot +0 -0
  277. data/vendor/assets/stylesheets/adminlte/fonts/fontawesome-webfont.svg +2671 -0
  278. data/vendor/assets/stylesheets/adminlte/fonts/fontawesome-webfont.ttf +0 -0
  279. data/vendor/assets/stylesheets/adminlte/fonts/fontawesome-webfont.woff +0 -0
  280. data/vendor/assets/stylesheets/adminlte/fonts/fontawesome-webfont.woff2 +0 -0
  281. data/vendor/assets/stylesheets/adminlte/fonts/glyphicons-halflings-regular.eot +0 -0
  282. data/vendor/assets/stylesheets/adminlte/fonts/glyphicons-halflings-regular.svg +288 -0
  283. data/vendor/assets/stylesheets/adminlte/fonts/glyphicons-halflings-regular.ttf +0 -0
  284. data/vendor/assets/stylesheets/adminlte/fonts/glyphicons-halflings-regular.woff +0 -0
  285. data/vendor/assets/stylesheets/adminlte/fonts/glyphicons-halflings-regular.woff2 +0 -0
  286. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-colorpicker/bootstrap-colorpicker.css +230 -0
  287. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker.css +477 -0
  288. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker.standalone.css +510 -0
  289. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker3.css +684 -0
  290. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-datepicker/bootstrap-datepicker3.standalone.css +713 -0
  291. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-daterangepicker/bootstrap-daterangepicker.css +269 -0
  292. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-slider/bootstrap-slider.css +178 -0
  293. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap-timepicker/bootstrap-timepicker.less +172 -0
  294. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap/bootstrap.css.map +1 -0
  295. data/vendor/assets/stylesheets/adminlte/plugins/bootstrap/bootstrap.scss +6757 -0
  296. data/vendor/assets/stylesheets/adminlte/plugins/font-awesome/font-awesome.scss +2341 -0
  297. data/vendor/assets/stylesheets/adminlte/plugins/select2/select2.css +484 -0
  298. data/vendor/assets/stylesheets/adminlte/skins/_all-skins.css +1781 -0
  299. data/vendor/assets/stylesheets/adminlte/skins/_all-skins.min.css +1 -0
  300. data/vendor/assets/stylesheets/adminlte/skins/skin-black-light.css +171 -0
  301. data/vendor/assets/stylesheets/adminlte/skins/skin-black-light.min.css +1 -0
  302. data/vendor/assets/stylesheets/adminlte/skins/skin-black.css +161 -0
  303. data/vendor/assets/stylesheets/adminlte/skins/skin-black.min.css +1 -0
  304. data/vendor/assets/stylesheets/adminlte/skins/skin-blue-light.css +163 -0
  305. data/vendor/assets/stylesheets/adminlte/skins/skin-blue-light.min.css +1 -0
  306. data/vendor/assets/stylesheets/adminlte/skins/skin-blue.css +142 -0
  307. data/vendor/assets/stylesheets/adminlte/skins/skin-blue.min.css +1 -0
  308. data/vendor/assets/stylesheets/adminlte/skins/skin-green-light.css +152 -0
  309. data/vendor/assets/stylesheets/adminlte/skins/skin-green-light.min.css +1 -0
  310. data/vendor/assets/stylesheets/adminlte/skins/skin-green.css +134 -0
  311. data/vendor/assets/stylesheets/adminlte/skins/skin-green.min.css +1 -0
  312. data/vendor/assets/stylesheets/adminlte/skins/skin-purple-light.css +152 -0
  313. data/vendor/assets/stylesheets/adminlte/skins/skin-purple-light.min.css +1 -0
  314. data/vendor/assets/stylesheets/adminlte/skins/skin-purple.css +134 -0
  315. data/vendor/assets/stylesheets/adminlte/skins/skin-purple.min.css +1 -0
  316. data/vendor/assets/stylesheets/adminlte/skins/skin-red-light.css +152 -0
  317. data/vendor/assets/stylesheets/adminlte/skins/skin-red-light.min.css +1 -0
  318. data/vendor/assets/stylesheets/adminlte/skins/skin-red.css +134 -0
  319. data/vendor/assets/stylesheets/adminlte/skins/skin-red.min.css +1 -0
  320. data/vendor/assets/stylesheets/adminlte/skins/skin-yellow-light.css +152 -0
  321. data/vendor/assets/stylesheets/adminlte/skins/skin-yellow-light.min.css +1 -0
  322. data/vendor/assets/stylesheets/adminlte/skins/skin-yellow.css +134 -0
  323. data/vendor/assets/stylesheets/adminlte/skins/skin-yellow.min.css +1 -0
  324. metadata +408 -0
@@ -0,0 +1,222 @@
1
+ define([
2
+ 'jquery',
3
+ '../utils',
4
+ '../keys'
5
+ ], function ($, Utils, KEYS) {
6
+ function Search (decorated, $element, options) {
7
+ decorated.call(this, $element, options);
8
+ }
9
+
10
+ Search.prototype.render = function (decorated) {
11
+ var $search = $(
12
+ '<li class="select2-search select2-search--inline">' +
13
+ '<input class="select2-search__field" type="search" tabindex="-1"' +
14
+ ' autocomplete="off" autocorrect="off" autocapitalize="none"' +
15
+ ' spellcheck="false" role="textbox" aria-autocomplete="list" />' +
16
+ '</li>'
17
+ );
18
+
19
+ this.$searchContainer = $search;
20
+ this.$search = $search.find('input');
21
+
22
+ var $rendered = decorated.call(this);
23
+
24
+ this._transferTabIndex();
25
+
26
+ return $rendered;
27
+ };
28
+
29
+ Search.prototype.bind = function (decorated, container, $container) {
30
+ var self = this;
31
+
32
+ decorated.call(this, container, $container);
33
+
34
+ container.on('open', function () {
35
+ self.$search.trigger('focus');
36
+ });
37
+
38
+ container.on('close', function () {
39
+ self.$search.val('');
40
+ self.$search.removeAttr('aria-activedescendant');
41
+ self.$search.trigger('focus');
42
+ });
43
+
44
+ container.on('enable', function () {
45
+ self.$search.prop('disabled', false);
46
+
47
+ self._transferTabIndex();
48
+ });
49
+
50
+ container.on('disable', function () {
51
+ self.$search.prop('disabled', true);
52
+ });
53
+
54
+ container.on('focus', function (evt) {
55
+ self.$search.trigger('focus');
56
+ });
57
+
58
+ container.on('results:focus', function (params) {
59
+ self.$search.attr('aria-activedescendant', params.id);
60
+ });
61
+
62
+ this.$selection.on('focusin', '.select2-search--inline', function (evt) {
63
+ self.trigger('focus', evt);
64
+ });
65
+
66
+ this.$selection.on('focusout', '.select2-search--inline', function (evt) {
67
+ self._handleBlur(evt);
68
+ });
69
+
70
+ this.$selection.on('keydown', '.select2-search--inline', function (evt) {
71
+ evt.stopPropagation();
72
+
73
+ self.trigger('keypress', evt);
74
+
75
+ self._keyUpPrevented = evt.isDefaultPrevented();
76
+
77
+ var key = evt.which;
78
+
79
+ if (key === KEYS.BACKSPACE && self.$search.val() === '') {
80
+ var $previousChoice = self.$searchContainer
81
+ .prev('.select2-selection__choice');
82
+
83
+ if ($previousChoice.length > 0) {
84
+ var item = $previousChoice.data('data');
85
+
86
+ self.searchRemoveChoice(item);
87
+
88
+ evt.preventDefault();
89
+ }
90
+ }
91
+ });
92
+
93
+ // Try to detect the IE version should the `documentMode` property that
94
+ // is stored on the document. This is only implemented in IE and is
95
+ // slightly cleaner than doing a user agent check.
96
+ // This property is not available in Edge, but Edge also doesn't have
97
+ // this bug.
98
+ var msie = document.documentMode;
99
+ var disableInputEvents = msie && msie <= 11;
100
+
101
+ // Workaround for browsers which do not support the `input` event
102
+ // This will prevent double-triggering of events for browsers which support
103
+ // both the `keyup` and `input` events.
104
+ this.$selection.on(
105
+ 'input.searchcheck',
106
+ '.select2-search--inline',
107
+ function (evt) {
108
+ // IE will trigger the `input` event when a placeholder is used on a
109
+ // search box. To get around this issue, we are forced to ignore all
110
+ // `input` events in IE and keep using `keyup`.
111
+ if (disableInputEvents) {
112
+ self.$selection.off('input.search input.searchcheck');
113
+ return;
114
+ }
115
+
116
+ // Unbind the duplicated `keyup` event
117
+ self.$selection.off('keyup.search');
118
+ }
119
+ );
120
+
121
+ this.$selection.on(
122
+ 'keyup.search input.search',
123
+ '.select2-search--inline',
124
+ function (evt) {
125
+ // IE will trigger the `input` event when a placeholder is used on a
126
+ // search box. To get around this issue, we are forced to ignore all
127
+ // `input` events in IE and keep using `keyup`.
128
+ if (disableInputEvents && evt.type === 'input') {
129
+ self.$selection.off('input.search input.searchcheck');
130
+ return;
131
+ }
132
+
133
+ var key = evt.which;
134
+
135
+ // We can freely ignore events from modifier keys
136
+ if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {
137
+ return;
138
+ }
139
+
140
+ // Tabbing will be handled during the `keydown` phase
141
+ if (key == KEYS.TAB) {
142
+ return;
143
+ }
144
+
145
+ self.handleSearch(evt);
146
+ }
147
+ );
148
+ };
149
+
150
+ /**
151
+ * This method will transfer the tabindex attribute from the rendered
152
+ * selection to the search box. This allows for the search box to be used as
153
+ * the primary focus instead of the selection container.
154
+ *
155
+ * @private
156
+ */
157
+ Search.prototype._transferTabIndex = function (decorated) {
158
+ this.$search.attr('tabindex', this.$selection.attr('tabindex'));
159
+ this.$selection.attr('tabindex', '-1');
160
+ };
161
+
162
+ Search.prototype.createPlaceholder = function (decorated, placeholder) {
163
+ this.$search.attr('placeholder', placeholder.text);
164
+ };
165
+
166
+ Search.prototype.update = function (decorated, data) {
167
+ var searchHadFocus = this.$search[0] == document.activeElement;
168
+
169
+ this.$search.attr('placeholder', '');
170
+
171
+ decorated.call(this, data);
172
+
173
+ this.$selection.find('.select2-selection__rendered')
174
+ .append(this.$searchContainer);
175
+
176
+ this.resizeSearch();
177
+ if (searchHadFocus) {
178
+ this.$search.focus();
179
+ }
180
+ };
181
+
182
+ Search.prototype.handleSearch = function () {
183
+ this.resizeSearch();
184
+
185
+ if (!this._keyUpPrevented) {
186
+ var input = this.$search.val();
187
+
188
+ this.trigger('query', {
189
+ term: input
190
+ });
191
+ }
192
+
193
+ this._keyUpPrevented = false;
194
+ };
195
+
196
+ Search.prototype.searchRemoveChoice = function (decorated, item) {
197
+ this.trigger('unselect', {
198
+ data: item
199
+ });
200
+
201
+ this.$search.val(item.text);
202
+ this.handleSearch();
203
+ };
204
+
205
+ Search.prototype.resizeSearch = function () {
206
+ this.$search.css('width', '25px');
207
+
208
+ var width = '';
209
+
210
+ if (this.$search.attr('placeholder') !== '') {
211
+ width = this.$selection.find('.select2-selection__rendered').innerWidth();
212
+ } else {
213
+ var minimumWidth = this.$search.val().length + 1;
214
+
215
+ width = (minimumWidth * 0.75) + 'em';
216
+ }
217
+
218
+ this.$search.css('width', width);
219
+ };
220
+
221
+ return Search;
222
+ });
@@ -0,0 +1,99 @@
1
+ define([
2
+ 'jquery',
3
+ './base',
4
+ '../utils',
5
+ '../keys'
6
+ ], function ($, BaseSelection, Utils, KEYS) {
7
+ function SingleSelection () {
8
+ SingleSelection.__super__.constructor.apply(this, arguments);
9
+ }
10
+
11
+ Utils.Extend(SingleSelection, BaseSelection);
12
+
13
+ SingleSelection.prototype.render = function () {
14
+ var $selection = SingleSelection.__super__.render.call(this);
15
+
16
+ $selection.addClass('select2-selection--single');
17
+
18
+ $selection.html(
19
+ '<span class="select2-selection__rendered"></span>' +
20
+ '<span class="select2-selection__arrow" role="presentation">' +
21
+ '<b role="presentation"></b>' +
22
+ '</span>'
23
+ );
24
+
25
+ return $selection;
26
+ };
27
+
28
+ SingleSelection.prototype.bind = function (container, $container) {
29
+ var self = this;
30
+
31
+ SingleSelection.__super__.bind.apply(this, arguments);
32
+
33
+ var id = container.id + '-container';
34
+
35
+ this.$selection.find('.select2-selection__rendered').attr('id', id);
36
+ this.$selection.attr('aria-labelledby', id);
37
+
38
+ this.$selection.on('mousedown', function (evt) {
39
+ // Only respond to left clicks
40
+ if (evt.which !== 1) {
41
+ return;
42
+ }
43
+
44
+ self.trigger('toggle', {
45
+ originalEvent: evt
46
+ });
47
+ });
48
+
49
+ this.$selection.on('focus', function (evt) {
50
+ // User focuses on the container
51
+ });
52
+
53
+ this.$selection.on('blur', function (evt) {
54
+ // User exits the container
55
+ });
56
+
57
+ container.on('focus', function (evt) {
58
+ if (!container.isOpen()) {
59
+ self.$selection.focus();
60
+ }
61
+ });
62
+
63
+ container.on('selection:update', function (params) {
64
+ self.update(params.data);
65
+ });
66
+ };
67
+
68
+ SingleSelection.prototype.clear = function () {
69
+ this.$selection.find('.select2-selection__rendered').empty();
70
+ };
71
+
72
+ SingleSelection.prototype.display = function (data, container) {
73
+ var template = this.options.get('templateSelection');
74
+ var escapeMarkup = this.options.get('escapeMarkup');
75
+
76
+ return escapeMarkup(template(data, container));
77
+ };
78
+
79
+ SingleSelection.prototype.selectionContainer = function () {
80
+ return $('<span></span>');
81
+ };
82
+
83
+ SingleSelection.prototype.update = function (data) {
84
+ if (data.length === 0) {
85
+ this.clear();
86
+ return;
87
+ }
88
+
89
+ var selection = data[0];
90
+
91
+ var $rendered = this.$selection.find('.select2-selection__rendered');
92
+ var formatted = this.display(selection, $rendered);
93
+
94
+ $rendered.empty().append(formatted);
95
+ $rendered.prop('title', selection.title || selection.text);
96
+ };
97
+
98
+ return SingleSelection;
99
+ });
@@ -0,0 +1,38 @@
1
+ define([
2
+
3
+ ], function () {
4
+ function StopPropagation () { }
5
+
6
+ StopPropagation.prototype.bind = function (decorated, container, $container) {
7
+ decorated.call(this, container, $container);
8
+
9
+ var stoppedEvents = [
10
+ 'blur',
11
+ 'change',
12
+ 'click',
13
+ 'dblclick',
14
+ 'focus',
15
+ 'focusin',
16
+ 'focusout',
17
+ 'input',
18
+ 'keydown',
19
+ 'keyup',
20
+ 'keypress',
21
+ 'mousedown',
22
+ 'mouseenter',
23
+ 'mouseleave',
24
+ 'mousemove',
25
+ 'mouseover',
26
+ 'mouseup',
27
+ 'search',
28
+ 'touchend',
29
+ 'touchstart'
30
+ ];
31
+
32
+ this.$selection.on(stoppedEvents.join(' '), function (evt) {
33
+ evt.stopPropagation();
34
+ });
35
+ };
36
+
37
+ return StopPropagation;
38
+ });
@@ -0,0 +1,36 @@
1
+ define([
2
+ 'jquery',
3
+ 'require'
4
+ ], function ($, require) {
5
+ function Translation (dict) {
6
+ this.dict = dict || {};
7
+ }
8
+
9
+ Translation.prototype.all = function () {
10
+ return this.dict;
11
+ };
12
+
13
+ Translation.prototype.get = function (key) {
14
+ return this.dict[key];
15
+ };
16
+
17
+ Translation.prototype.extend = function (translation) {
18
+ this.dict = $.extend({}, translation.all(), this.dict);
19
+ };
20
+
21
+ // Static functions
22
+
23
+ Translation._cache = {};
24
+
25
+ Translation.loadPath = function (path) {
26
+ if (!(path in Translation._cache)) {
27
+ var translations = require(path);
28
+
29
+ Translation._cache[path] = translations;
30
+ }
31
+
32
+ return new Translation(Translation._cache[path]);
33
+ };
34
+
35
+ return Translation;
36
+ });
@@ -0,0 +1,276 @@
1
+ define([
2
+ 'jquery'
3
+ ], function ($) {
4
+ var Utils = {};
5
+
6
+ Utils.Extend = function (ChildClass, SuperClass) {
7
+ var __hasProp = {}.hasOwnProperty;
8
+
9
+ function BaseConstructor () {
10
+ this.constructor = ChildClass;
11
+ }
12
+
13
+ for (var key in SuperClass) {
14
+ if (__hasProp.call(SuperClass, key)) {
15
+ ChildClass[key] = SuperClass[key];
16
+ }
17
+ }
18
+
19
+ BaseConstructor.prototype = SuperClass.prototype;
20
+ ChildClass.prototype = new BaseConstructor();
21
+ ChildClass.__super__ = SuperClass.prototype;
22
+
23
+ return ChildClass;
24
+ };
25
+
26
+ function getMethods (theClass) {
27
+ var proto = theClass.prototype;
28
+
29
+ var methods = [];
30
+
31
+ for (var methodName in proto) {
32
+ var m = proto[methodName];
33
+
34
+ if (typeof m !== 'function') {
35
+ continue;
36
+ }
37
+
38
+ if (methodName === 'constructor') {
39
+ continue;
40
+ }
41
+
42
+ methods.push(methodName);
43
+ }
44
+
45
+ return methods;
46
+ }
47
+
48
+ Utils.Decorate = function (SuperClass, DecoratorClass) {
49
+ var decoratedMethods = getMethods(DecoratorClass);
50
+ var superMethods = getMethods(SuperClass);
51
+
52
+ function DecoratedClass () {
53
+ var unshift = Array.prototype.unshift;
54
+
55
+ var argCount = DecoratorClass.prototype.constructor.length;
56
+
57
+ var calledConstructor = SuperClass.prototype.constructor;
58
+
59
+ if (argCount > 0) {
60
+ unshift.call(arguments, SuperClass.prototype.constructor);
61
+
62
+ calledConstructor = DecoratorClass.prototype.constructor;
63
+ }
64
+
65
+ calledConstructor.apply(this, arguments);
66
+ }
67
+
68
+ DecoratorClass.displayName = SuperClass.displayName;
69
+
70
+ function ctr () {
71
+ this.constructor = DecoratedClass;
72
+ }
73
+
74
+ DecoratedClass.prototype = new ctr();
75
+
76
+ for (var m = 0; m < superMethods.length; m++) {
77
+ var superMethod = superMethods[m];
78
+
79
+ DecoratedClass.prototype[superMethod] =
80
+ SuperClass.prototype[superMethod];
81
+ }
82
+
83
+ var calledMethod = function (methodName) {
84
+ // Stub out the original method if it's not decorating an actual method
85
+ var originalMethod = function () {};
86
+
87
+ if (methodName in DecoratedClass.prototype) {
88
+ originalMethod = DecoratedClass.prototype[methodName];
89
+ }
90
+
91
+ var decoratedMethod = DecoratorClass.prototype[methodName];
92
+
93
+ return function () {
94
+ var unshift = Array.prototype.unshift;
95
+
96
+ unshift.call(arguments, originalMethod);
97
+
98
+ return decoratedMethod.apply(this, arguments);
99
+ };
100
+ };
101
+
102
+ for (var d = 0; d < decoratedMethods.length; d++) {
103
+ var decoratedMethod = decoratedMethods[d];
104
+
105
+ DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);
106
+ }
107
+
108
+ return DecoratedClass;
109
+ };
110
+
111
+ var Observable = function () {
112
+ this.listeners = {};
113
+ };
114
+
115
+ Observable.prototype.on = function (event, callback) {
116
+ this.listeners = this.listeners || {};
117
+
118
+ if (event in this.listeners) {
119
+ this.listeners[event].push(callback);
120
+ } else {
121
+ this.listeners[event] = [callback];
122
+ }
123
+ };
124
+
125
+ Observable.prototype.trigger = function (event) {
126
+ var slice = Array.prototype.slice;
127
+ var params = slice.call(arguments, 1);
128
+
129
+ this.listeners = this.listeners || {};
130
+
131
+ // Params should always come in as an array
132
+ if (params == null) {
133
+ params = [];
134
+ }
135
+
136
+ // If there are no arguments to the event, use a temporary object
137
+ if (params.length === 0) {
138
+ params.push({});
139
+ }
140
+
141
+ // Set the `_type` of the first object to the event
142
+ params[0]._type = event;
143
+
144
+ if (event in this.listeners) {
145
+ this.invoke(this.listeners[event], slice.call(arguments, 1));
146
+ }
147
+
148
+ if ('*' in this.listeners) {
149
+ this.invoke(this.listeners['*'], arguments);
150
+ }
151
+ };
152
+
153
+ Observable.prototype.invoke = function (listeners, params) {
154
+ for (var i = 0, len = listeners.length; i < len; i++) {
155
+ listeners[i].apply(this, params);
156
+ }
157
+ };
158
+
159
+ Utils.Observable = Observable;
160
+
161
+ Utils.generateChars = function (length) {
162
+ var chars = '';
163
+
164
+ for (var i = 0; i < length; i++) {
165
+ var randomChar = Math.floor(Math.random() * 36);
166
+ chars += randomChar.toString(36);
167
+ }
168
+
169
+ return chars;
170
+ };
171
+
172
+ Utils.bind = function (func, context) {
173
+ return function () {
174
+ func.apply(context, arguments);
175
+ };
176
+ };
177
+
178
+ Utils._convertData = function (data) {
179
+ for (var originalKey in data) {
180
+ var keys = originalKey.split('-');
181
+
182
+ var dataLevel = data;
183
+
184
+ if (keys.length === 1) {
185
+ continue;
186
+ }
187
+
188
+ for (var k = 0; k < keys.length; k++) {
189
+ var key = keys[k];
190
+
191
+ // Lowercase the first letter
192
+ // By default, dash-separated becomes camelCase
193
+ key = key.substring(0, 1).toLowerCase() + key.substring(1);
194
+
195
+ if (!(key in dataLevel)) {
196
+ dataLevel[key] = {};
197
+ }
198
+
199
+ if (k == keys.length - 1) {
200
+ dataLevel[key] = data[originalKey];
201
+ }
202
+
203
+ dataLevel = dataLevel[key];
204
+ }
205
+
206
+ delete data[originalKey];
207
+ }
208
+
209
+ return data;
210
+ };
211
+
212
+ Utils.hasScroll = function (index, el) {
213
+ // Adapted from the function created by @ShadowScripter
214
+ // and adapted by @BillBarry on the Stack Exchange Code Review website.
215
+ // The original code can be found at
216
+ // http://codereview.stackexchange.com/q/13338
217
+ // and was designed to be used with the Sizzle selector engine.
218
+
219
+ var $el = $(el);
220
+ var overflowX = el.style.overflowX;
221
+ var overflowY = el.style.overflowY;
222
+
223
+ //Check both x and y declarations
224
+ if (overflowX === overflowY &&
225
+ (overflowY === 'hidden' || overflowY === 'visible')) {
226
+ return false;
227
+ }
228
+
229
+ if (overflowX === 'scroll' || overflowY === 'scroll') {
230
+ return true;
231
+ }
232
+
233
+ return ($el.innerHeight() < el.scrollHeight ||
234
+ $el.innerWidth() < el.scrollWidth);
235
+ };
236
+
237
+ Utils.escapeMarkup = function (markup) {
238
+ var replaceMap = {
239
+ '\\': '&#92;',
240
+ '&': '&amp;',
241
+ '<': '&lt;',
242
+ '>': '&gt;',
243
+ '"': '&quot;',
244
+ '\'': '&#39;',
245
+ '/': '&#47;'
246
+ };
247
+
248
+ // Do not try to escape the markup if it's not a string
249
+ if (typeof markup !== 'string') {
250
+ return markup;
251
+ }
252
+
253
+ return String(markup).replace(/[&<>"'\/\\]/g, function (match) {
254
+ return replaceMap[match];
255
+ });
256
+ };
257
+
258
+ // Append an array of jQuery nodes to a given element.
259
+ Utils.appendMany = function ($element, $nodes) {
260
+ // jQuery 1.7.x does not support $.fn.append() with an array
261
+ // Fall back to a jQuery object collection using $.fn.add()
262
+ if ($.fn.jquery.substr(0, 3) === '1.7') {
263
+ var $jqNodes = $();
264
+
265
+ $.map($nodes, function (node) {
266
+ $jqNodes = $jqNodes.add(node);
267
+ });
268
+
269
+ $nodes = $jqNodes;
270
+ }
271
+
272
+ $element.append($nodes);
273
+ };
274
+
275
+ return Utils;
276
+ });