rbbt-rest 1.8.42 → 1.8.43

Sign up to get free protection for your applications and to get access to all the features.
Files changed (421) hide show
  1. checksums.yaml +4 -4
  2. data/share/views/compass/old/base/backgrounds.sass +41 -0
  3. data/share/views/compass/old/base/blocks.sass +92 -0
  4. data/share/views/compass/old/base/color.sass +66 -0
  5. data/share/views/compass/old/base/colors.sass +66 -0
  6. data/share/views/compass/old/base/font-scale.sass +20 -0
  7. data/share/views/compass/old/base/fonts.sass +56 -0
  8. data/share/views/compass/old/base/hide.sass +95 -0
  9. data/share/views/compass/old/base/icon_content.scss +569 -0
  10. data/share/views/compass/old/base/icons.sass +75 -0
  11. data/share/views/compass/old/base/material.sass +223 -0
  12. data/share/views/compass/old/base/misc.sass +2 -0
  13. data/share/views/compass/old/base/screen_sizes.sass +16 -0
  14. data/share/views/compass/old/base/text.sass +70 -0
  15. data/share/views/compass/old/base/util.sass +6 -0
  16. data/share/views/compass/old/base/variables.sass +68 -0
  17. data/share/views/compass/old/base/variables/color.sass +27 -0
  18. data/share/views/compass/old/blocks.sass +0 -0
  19. data/share/views/compass/old/cards.sass +131 -0
  20. data/share/views/compass/old/color.sass +10 -0
  21. data/share/views/compass/old/color/blocks.sass +0 -0
  22. data/share/views/compass/old/color/buttons.sass +36 -0
  23. data/share/views/compass/old/color/elements.sass +2 -0
  24. data/share/views/compass/old/color/font.sass +13 -0
  25. data/share/views/compass/old/color/top_bar.sass +18 -0
  26. data/share/views/compass/old/elements.sass +218 -0
  27. data/share/views/compass/old/elements/buttons.sass +18 -0
  28. data/share/views/compass/old/elements/forms.sass +197 -0
  29. data/share/views/compass/old/elements/lists.sass +14 -0
  30. data/share/views/compass/old/elements/materials.sass +1 -0
  31. data/share/views/compass/old/elements/movement.sass +84 -0
  32. data/share/views/compass/old/elements/positions.sass +18 -0
  33. data/share/views/compass/old/elements/table.sass +176 -0
  34. data/share/views/compass/old/elements/tool.sass +60 -0
  35. data/share/views/compass/old/grid.sass +3 -0
  36. data/share/views/compass/old/init.sass +9 -0
  37. data/share/views/compass/old/layout.sass +5 -0
  38. data/share/views/compass/old/layout/body.sass +23 -0
  39. data/share/views/compass/old/layout/footer.sass +44 -0
  40. data/share/views/compass/old/layout/result.sass +6 -0
  41. data/share/views/compass/old/layout/reveal.sass +50 -0
  42. data/share/views/compass/old/layout/top_bar.sass +99 -0
  43. data/share/views/compass/old/layout/top_menu.sass +87 -0
  44. data/share/views/compass/old/menu.sass +43 -0
  45. data/share/views/compass/old/menu/accordion_menu.sass +30 -0
  46. data/share/views/compass/old/menu/actionable.sass +1 -0
  47. data/share/views/compass/old/menu/dropdown_menu.sass +31 -0
  48. data/share/views/compass/old/menu/hide.sass +14 -0
  49. data/share/views/compass/old/menu/menu.sass +98 -0
  50. data/share/views/compass/old/menu/tab_menu.sass +14 -0
  51. data/share/views/compass/old/menu/top_bar.sass +105 -0
  52. data/share/views/compass/old/menu/vertical_menu.sass +21 -0
  53. data/share/views/compass/old/mixins/_all.sass +24 -0
  54. data/share/views/compass/old/mixins/_blocks.sass +79 -0
  55. data/share/views/compass/old/mixins/_compass.sass +0 -0
  56. data/share/views/compass/old/mixins/_deps.sass +5 -0
  57. data/share/views/compass/old/mixins/_hide.sass +76 -0
  58. data/share/views/compass/old/mixins/_keyframes.scss +4 -0
  59. data/share/views/compass/old/mixins/_semantic-ui.sass +2 -0
  60. data/share/views/compass/old/new.sass +1 -0
  61. data/share/views/compass/old/offcanvas.sass +52 -0
  62. data/share/views/compass/old/position/basic.sass +0 -0
  63. data/share/views/compass/old/responsive.sass +53 -0
  64. data/share/views/compass/old/semantic-ui.css +1 -0
  65. data/share/views/compass/old/semantic-ui/semantic-ui.css +19776 -0
  66. data/share/views/compass/old/space/button.sass +74 -0
  67. data/share/views/compass/old/table.sass +142 -0
  68. data/share/views/compass/old/text.sass +48 -0
  69. data/share/views/compass/old/variables/colors.sass +7 -0
  70. data/share/views/compass/old/variables/sizes.sass +5 -0
  71. data/share/views/layout/header.haml +1 -1
  72. data/share/views/public/js/helpers/helpers.js +25 -0
  73. data/share/views/public/js/rbbt.views.js +78 -18
  74. data/share/views/public/js/rbbt/table.js +0 -1
  75. data/share/views/public/plugins/FileSaver/js/FileSaver.js +74 -134
  76. data/share/views/public/plugins/jquery/js/jquery-3.1.1.js +10220 -0
  77. data/share/views/public/plugins/semantic-ui/CONTRIBUTING.md +48 -6
  78. data/share/views/public/plugins/semantic-ui/README.md +40 -15
  79. data/share/views/public/plugins/semantic-ui/RELEASE-NOTES.md +669 -14
  80. data/share/views/public/plugins/semantic-ui/bower.json +1 -3
  81. data/share/views/public/plugins/semantic-ui/dist/components/accordion.css +7 -10
  82. data/share/views/public/plugins/semantic-ui/dist/components/accordion.js +39 -21
  83. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.css +2 -3
  84. data/share/views/public/plugins/semantic-ui/dist/components/accordion.min.js +2 -3
  85. data/share/views/public/plugins/semantic-ui/dist/components/ad.css +2 -3
  86. data/share/views/public/plugins/semantic-ui/dist/components/ad.min.css +2 -2
  87. data/share/views/public/plugins/semantic-ui/dist/components/api.js +161 -71
  88. data/share/views/public/plugins/semantic-ui/dist/components/api.min.js +2 -3
  89. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.css +5 -6
  90. data/share/views/public/plugins/semantic-ui/dist/components/breadcrumb.min.css +2 -3
  91. data/share/views/public/plugins/semantic-ui/dist/components/button.css +658 -432
  92. data/share/views/public/plugins/semantic-ui/dist/components/button.min.css +2 -3
  93. data/share/views/public/plugins/semantic-ui/dist/components/card.css +68 -44
  94. data/share/views/public/plugins/semantic-ui/dist/components/card.min.css +2 -3
  95. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.css +126 -89
  96. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.js +216 -91
  97. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.css +2 -3
  98. data/share/views/public/plugins/semantic-ui/dist/components/checkbox.min.js +2 -3
  99. data/share/views/public/plugins/semantic-ui/dist/components/colorize.js +1 -1
  100. data/share/views/public/plugins/semantic-ui/dist/components/comment.css +17 -6
  101. data/share/views/public/plugins/semantic-ui/dist/components/comment.min.css +2 -3
  102. data/share/views/public/plugins/semantic-ui/dist/components/container.css +29 -7
  103. data/share/views/public/plugins/semantic-ui/dist/components/container.min.css +2 -3
  104. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.css +7 -9
  105. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.js +80 -39
  106. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.css +2 -3
  107. data/share/views/public/plugins/semantic-ui/dist/components/dimmer.min.js +2 -3
  108. data/share/views/public/plugins/semantic-ui/dist/components/divider.css +8 -8
  109. data/share/views/public/plugins/semantic-ui/dist/components/divider.min.css +2 -3
  110. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.css +127 -98
  111. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.js +918 -400
  112. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.css +2 -3
  113. data/share/views/public/plugins/semantic-ui/dist/components/dropdown.min.js +3 -5
  114. data/share/views/public/plugins/semantic-ui/dist/components/embed.css +12 -8
  115. data/share/views/public/plugins/semantic-ui/dist/components/embed.js +51 -17
  116. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.css +2 -3
  117. data/share/views/public/plugins/semantic-ui/dist/components/embed.min.js +2 -3
  118. data/share/views/public/plugins/semantic-ui/dist/components/feed.css +5 -6
  119. data/share/views/public/plugins/semantic-ui/dist/components/feed.min.css +2 -3
  120. data/share/views/public/plugins/semantic-ui/dist/components/flag.css +10 -3
  121. data/share/views/public/plugins/semantic-ui/dist/components/flag.min.css +2 -3
  122. data/share/views/public/plugins/semantic-ui/dist/components/form.css +208 -121
  123. data/share/views/public/plugins/semantic-ui/dist/components/form.js +469 -167
  124. data/share/views/public/plugins/semantic-ui/dist/components/form.min.css +2 -3
  125. data/share/views/public/plugins/semantic-ui/dist/components/form.min.js +2 -3
  126. data/share/views/public/plugins/semantic-ui/dist/components/grid.css +222 -71
  127. data/share/views/public/plugins/semantic-ui/dist/components/grid.min.css +2 -3
  128. data/share/views/public/plugins/semantic-ui/dist/components/header.css +47 -48
  129. data/share/views/public/plugins/semantic-ui/dist/components/header.min.css +2 -3
  130. data/share/views/public/plugins/semantic-ui/dist/components/icon.css +839 -280
  131. data/share/views/public/plugins/semantic-ui/dist/components/icon.min.css +2 -3
  132. data/share/views/public/plugins/semantic-ui/dist/components/image.css +7 -3
  133. data/share/views/public/plugins/semantic-ui/dist/components/image.min.css +2 -3
  134. data/share/views/public/plugins/semantic-ui/dist/components/input.css +91 -61
  135. data/share/views/public/plugins/semantic-ui/dist/components/input.min.css +2 -3
  136. data/share/views/public/plugins/semantic-ui/dist/components/item.css +17 -18
  137. data/share/views/public/plugins/semantic-ui/dist/components/item.min.css +2 -3
  138. data/share/views/public/plugins/semantic-ui/dist/components/label.css +497 -304
  139. data/share/views/public/plugins/semantic-ui/dist/components/label.min.css +2 -3
  140. data/share/views/public/plugins/semantic-ui/dist/components/list.css +56 -27
  141. data/share/views/public/plugins/semantic-ui/dist/components/list.min.css +2 -3
  142. data/share/views/public/plugins/semantic-ui/dist/components/loader.css +101 -40
  143. data/share/views/public/plugins/semantic-ui/dist/components/loader.min.css +2 -3
  144. data/share/views/public/plugins/semantic-ui/dist/components/menu.css +335 -179
  145. data/share/views/public/plugins/semantic-ui/dist/components/menu.min.css +1 -1
  146. data/share/views/public/plugins/semantic-ui/dist/components/message.css +83 -65
  147. data/share/views/public/plugins/semantic-ui/dist/components/message.min.css +2 -3
  148. data/share/views/public/plugins/semantic-ui/dist/components/modal.css +16 -18
  149. data/share/views/public/plugins/semantic-ui/dist/components/modal.js +68 -42
  150. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.css +2 -3
  151. data/share/views/public/plugins/semantic-ui/dist/components/modal.min.js +2 -3
  152. data/share/views/public/plugins/semantic-ui/dist/components/nag.css +6 -7
  153. data/share/views/public/plugins/semantic-ui/dist/components/nag.js +41 -10
  154. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.css +2 -3
  155. data/share/views/public/plugins/semantic-ui/dist/components/nag.min.js +2 -3
  156. data/share/views/public/plugins/semantic-ui/dist/components/popup.css +423 -39
  157. data/share/views/public/plugins/semantic-ui/dist/components/popup.js +275 -153
  158. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.css +2 -3
  159. data/share/views/public/plugins/semantic-ui/dist/components/popup.min.js +2 -3
  160. data/share/views/public/plugins/semantic-ui/dist/components/progress.css +47 -48
  161. data/share/views/public/plugins/semantic-ui/dist/components/progress.js +202 -64
  162. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.css +2 -3
  163. data/share/views/public/plugins/semantic-ui/dist/components/progress.min.js +2 -3
  164. data/share/views/public/plugins/semantic-ui/dist/components/rail.css +24 -4
  165. data/share/views/public/plugins/semantic-ui/dist/components/rail.min.css +2 -3
  166. data/share/views/public/plugins/semantic-ui/dist/components/rating.css +12 -13
  167. data/share/views/public/plugins/semantic-ui/dist/components/rating.js +43 -10
  168. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.css +2 -3
  169. data/share/views/public/plugins/semantic-ui/dist/components/rating.min.js +2 -3
  170. data/share/views/public/plugins/semantic-ui/dist/components/reset.css +1 -6
  171. data/share/views/public/plugins/semantic-ui/dist/components/reset.min.css +2 -3
  172. data/share/views/public/plugins/semantic-ui/dist/components/reveal.css +13 -41
  173. data/share/views/public/plugins/semantic-ui/dist/components/reveal.min.css +2 -3
  174. data/share/views/public/plugins/semantic-ui/dist/components/search.css +53 -21
  175. data/share/views/public/plugins/semantic-ui/dist/components/search.js +261 -132
  176. data/share/views/public/plugins/semantic-ui/dist/components/search.min.css +2 -3
  177. data/share/views/public/plugins/semantic-ui/dist/components/search.min.js +2 -3
  178. data/share/views/public/plugins/semantic-ui/dist/components/segment.css +124 -72
  179. data/share/views/public/plugins/semantic-ui/dist/components/segment.min.css +2 -3
  180. data/share/views/public/plugins/semantic-ui/dist/components/shape.css +11 -8
  181. data/share/views/public/plugins/semantic-ui/dist/components/shape.js +68 -23
  182. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.css +2 -3
  183. data/share/views/public/plugins/semantic-ui/dist/components/shape.min.js +2 -3
  184. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.css +45 -36
  185. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.js +23 -10
  186. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.css +2 -3
  187. data/share/views/public/plugins/semantic-ui/dist/components/sidebar.min.js +2 -3
  188. data/share/views/public/plugins/semantic-ui/dist/components/site.css +6 -7
  189. data/share/views/public/plugins/semantic-ui/dist/components/site.js +5 -5
  190. data/share/views/public/plugins/semantic-ui/dist/components/site.min.css +2 -3
  191. data/share/views/public/plugins/semantic-ui/dist/components/site.min.js +2 -3
  192. data/share/views/public/plugins/semantic-ui/dist/components/state.js +22 -9
  193. data/share/views/public/plugins/semantic-ui/dist/components/state.min.js +2 -3
  194. data/share/views/public/plugins/semantic-ui/dist/components/statistic.css +46 -45
  195. data/share/views/public/plugins/semantic-ui/dist/components/statistic.min.css +2 -3
  196. data/share/views/public/plugins/semantic-ui/dist/components/step.css +83 -44
  197. data/share/views/public/plugins/semantic-ui/dist/components/step.min.css +2 -3
  198. data/share/views/public/plugins/semantic-ui/dist/components/sticky.css +2 -3
  199. data/share/views/public/plugins/semantic-ui/dist/components/sticky.js +138 -78
  200. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.css +1 -2
  201. data/share/views/public/plugins/semantic-ui/dist/components/sticky.min.js +2 -3
  202. data/share/views/public/plugins/semantic-ui/dist/components/tab.css +1 -2
  203. data/share/views/public/plugins/semantic-ui/dist/components/tab.js +95 -46
  204. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.css +1 -2
  205. data/share/views/public/plugins/semantic-ui/dist/components/tab.min.js +2 -3
  206. data/share/views/public/plugins/semantic-ui/dist/components/table.css +136 -77
  207. data/share/views/public/plugins/semantic-ui/dist/components/table.min.css +2 -3
  208. data/share/views/public/plugins/semantic-ui/dist/components/transition.css +1 -19
  209. data/share/views/public/plugins/semantic-ui/dist/components/transition.js +58 -32
  210. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.css +2 -3
  211. data/share/views/public/plugins/semantic-ui/dist/components/transition.min.js +2 -3
  212. data/share/views/public/plugins/semantic-ui/dist/components/video.js +1 -1
  213. data/share/views/public/plugins/semantic-ui/dist/components/visibility.js +99 -29
  214. data/share/views/public/plugins/semantic-ui/dist/components/visibility.min.js +2 -3
  215. data/share/views/public/plugins/semantic-ui/dist/semantic.css +5051 -3645
  216. data/share/views/public/plugins/semantic-ui/dist/semantic.js +3345 -1456
  217. data/share/views/public/plugins/semantic-ui/dist/semantic.min.css +2 -2
  218. data/share/views/public/plugins/semantic-ui/dist/semantic.min.js +10 -10
  219. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.eot +0 -0
  220. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.svg +146 -26
  221. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.ttf +0 -0
  222. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff +0 -0
  223. data/share/views/public/plugins/semantic-ui/dist/themes/default/assets/fonts/icons.woff2 +0 -0
  224. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons-local.ttf +0 -0
  225. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.svg +200 -0
  226. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.ttf +0 -0
  227. data/share/views/public/plugins/semantic-ui/dist/themes/github/assets/fonts/octicons.woff +0 -0
  228. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.eot +0 -0
  229. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.svg +2373 -0
  230. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.ttf +0 -0
  231. data/share/views/public/plugins/semantic-ui/dist/themes/material/assets/fonts/icons.woff +0 -0
  232. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe-content.js +8 -8
  233. data/share/views/public/plugins/semantic-ui/examples/assets/library/iframe.js +1 -1
  234. data/share/views/public/plugins/semantic-ui/examples/attached.html +381 -0
  235. data/share/views/public/plugins/semantic-ui/examples/bootstrap.html +4 -4
  236. data/share/views/public/plugins/semantic-ui/examples/components/site.html +1 -1
  237. data/share/views/public/plugins/semantic-ui/examples/fixed.html +10 -10
  238. data/share/views/public/plugins/semantic-ui/examples/grid.html +1 -1
  239. data/share/views/public/plugins/semantic-ui/examples/homepage.html +3 -3
  240. data/share/views/public/plugins/semantic-ui/examples/login.html +1 -1
  241. data/share/views/public/plugins/semantic-ui/examples/responsive.html +5 -5
  242. data/share/views/public/plugins/semantic-ui/examples/sticky.html +1 -1
  243. data/share/views/public/plugins/semantic-ui/examples/theming.html +1 -1
  244. data/share/views/public/plugins/semantic-ui/gulpfile.js +3 -3
  245. data/share/views/public/plugins/semantic-ui/package.json +36 -31
  246. data/share/views/public/plugins/semantic-ui/semantic.json.example +1 -0
  247. data/share/views/public/plugins/semantic-ui/src/_site/collections/message.overrides +1 -1
  248. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/api.js +160 -70
  249. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/colorize.js +235 -229
  250. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/form.js +468 -166
  251. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/state.js +21 -8
  252. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visibility.js +98 -28
  253. data/share/views/public/plugins/semantic-ui/src/definitions/behaviors/visit.js +14 -6
  254. data/share/views/public/plugins/semantic-ui/src/definitions/collections/breadcrumb.less +2 -3
  255. data/share/views/public/plugins/semantic-ui/src/definitions/collections/form.less +154 -74
  256. data/share/views/public/plugins/semantic-ui/src/definitions/collections/grid.less +171 -41
  257. data/share/views/public/plugins/semantic-ui/src/definitions/collections/menu.less +235 -99
  258. data/share/views/public/plugins/semantic-ui/src/definitions/collections/message.less +28 -10
  259. data/share/views/public/plugins/semantic-ui/src/definitions/collections/table.less +77 -16
  260. data/share/views/public/plugins/semantic-ui/src/definitions/elements/button.less +326 -109
  261. data/share/views/public/plugins/semantic-ui/src/definitions/elements/container.less +25 -7
  262. data/share/views/public/plugins/semantic-ui/src/definitions/elements/divider.less +7 -7
  263. data/share/views/public/plugins/semantic-ui/src/definitions/elements/flag.less +2 -3
  264. data/share/views/public/plugins/semantic-ui/src/definitions/elements/header.less +3 -4
  265. data/share/views/public/plugins/semantic-ui/src/definitions/elements/icon.less +37 -6
  266. data/share/views/public/plugins/semantic-ui/src/definitions/elements/image.less +324 -319
  267. data/share/views/public/plugins/semantic-ui/src/definitions/elements/input.less +70 -39
  268. data/share/views/public/plugins/semantic-ui/src/definitions/elements/label.less +363 -245
  269. data/share/views/public/plugins/semantic-ui/src/definitions/elements/list.less +49 -19
  270. data/share/views/public/plugins/semantic-ui/src/definitions/elements/loader.less +72 -9
  271. data/share/views/public/plugins/semantic-ui/src/definitions/elements/rail.less +21 -2
  272. data/share/views/public/plugins/semantic-ui/src/definitions/elements/reveal.less +6 -14
  273. data/share/views/public/plugins/semantic-ui/src/definitions/elements/segment.less +72 -21
  274. data/share/views/public/plugins/semantic-ui/src/definitions/elements/step.less +68 -34
  275. data/share/views/public/plugins/semantic-ui/src/definitions/globals/reset.less +1 -2
  276. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.js +4 -4
  277. data/share/views/public/plugins/semantic-ui/src/definitions/globals/site.less +3 -1
  278. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.js +38 -20
  279. data/share/views/public/plugins/semantic-ui/src/definitions/modules/accordion.less +2 -2
  280. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.js +215 -90
  281. data/share/views/public/plugins/semantic-ui/src/definitions/modules/checkbox.less +105 -69
  282. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.js +79 -38
  283. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dimmer.less +1 -2
  284. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.js +917 -399
  285. data/share/views/public/plugins/semantic-ui/src/definitions/modules/dropdown.less +62 -25
  286. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.js +51 -17
  287. data/share/views/public/plugins/semantic-ui/src/definitions/modules/embed.less +163 -164
  288. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.js +67 -41
  289. data/share/views/public/plugins/semantic-ui/src/definitions/modules/modal.less +7 -8
  290. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.js +40 -9
  291. data/share/views/public/plugins/semantic-ui/src/definitions/modules/nag.less +158 -159
  292. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.js +274 -152
  293. data/share/views/public/plugins/semantic-ui/src/definitions/modules/popup.less +712 -332
  294. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.js +201 -63
  295. data/share/views/public/plugins/semantic-ui/src/definitions/modules/progress.less +0 -1
  296. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.js +42 -9
  297. data/share/views/public/plugins/semantic-ui/src/definitions/modules/rating.less +0 -1
  298. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.js +260 -131
  299. data/share/views/public/plugins/semantic-ui/src/definitions/modules/search.less +35 -2
  300. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.js +67 -22
  301. data/share/views/public/plugins/semantic-ui/src/definitions/modules/shape.less +1 -2
  302. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.js +22 -9
  303. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sidebar.less +13 -15
  304. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.js +137 -77
  305. data/share/views/public/plugins/semantic-ui/src/definitions/modules/sticky.less +1 -2
  306. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.js +94 -45
  307. data/share/views/public/plugins/semantic-ui/src/definitions/modules/tab.less +1 -2
  308. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.js +57 -31
  309. data/share/views/public/plugins/semantic-ui/src/definitions/modules/transition.less +1 -2
  310. data/share/views/public/plugins/semantic-ui/src/definitions/views/ad.less +1 -1
  311. data/share/views/public/plugins/semantic-ui/src/definitions/views/card.less +23 -2
  312. data/share/views/public/plugins/semantic-ui/src/definitions/views/comment.less +18 -5
  313. data/share/views/public/plugins/semantic-ui/src/definitions/views/feed.less +0 -1
  314. data/share/views/public/plugins/semantic-ui/src/definitions/views/item.less +3 -4
  315. data/share/views/public/plugins/semantic-ui/src/definitions/views/statistic.less +18 -19
  316. data/share/views/public/plugins/semantic-ui/src/theme.less +13 -7
  317. data/share/views/public/plugins/semantic-ui/src/themes/amazon/globals/site.variables +43 -0
  318. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/step.overrides +3 -0
  319. data/share/views/public/plugins/semantic-ui/src/themes/basic/elements/step.variables +12 -4
  320. data/share/views/public/plugins/semantic-ui/src/themes/basic/globals/reset.overrides +1 -1
  321. data/share/views/public/plugins/semantic-ui/src/themes/bookish/elements/header.variables +5 -5
  322. data/share/views/public/plugins/semantic-ui/src/themes/chubby/elements/header.variables +5 -5
  323. data/share/views/public/plugins/semantic-ui/src/themes/colored/modules/checkbox.variables +15 -3
  324. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.eot +0 -0
  325. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.svg +146 -26
  326. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.ttf +0 -0
  327. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff +0 -0
  328. data/share/views/public/plugins/semantic-ui/src/themes/default/assets/fonts/icons.woff2 +0 -0
  329. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/breadcrumb.variables +1 -1
  330. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/form.variables +20 -14
  331. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/grid.variables +5 -0
  332. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/menu.variables +57 -28
  333. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/message.variables +48 -1
  334. data/share/views/public/plugins/semantic-ui/src/themes/default/collections/table.variables +18 -4
  335. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/button.variables +28 -4
  336. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/container.variables +14 -1
  337. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/flag.overrides +8 -0
  338. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.overrides +263 -86
  339. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/icon.variables +3 -1
  340. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/input.variables +7 -10
  341. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/label.variables +37 -10
  342. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/list.variables +2 -1
  343. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/loader.variables +17 -5
  344. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/rail.variables +2 -2
  345. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/segment.variables +6 -5
  346. data/share/views/public/plugins/semantic-ui/src/themes/default/elements/step.variables +7 -4
  347. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/reset.overrides +1 -6
  348. data/share/views/public/plugins/semantic-ui/src/themes/default/globals/site.variables +216 -67
  349. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/checkbox.variables +36 -11
  350. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/dropdown.variables +27 -18
  351. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/popup.variables +52 -4
  352. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/rating.overrides +2 -2
  353. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/search.variables +16 -0
  354. data/share/views/public/plugins/semantic-ui/src/themes/default/modules/sticky.variables +1 -1
  355. data/share/views/public/plugins/semantic-ui/src/themes/default/views/card.variables +11 -0
  356. data/share/views/public/plugins/semantic-ui/src/themes/flat/collections/form.variables +1 -0
  357. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons-local.ttf +0 -0
  358. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.svg +200 -0
  359. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.ttf +0 -0
  360. data/share/views/public/plugins/semantic-ui/src/themes/github/assets/fonts/octicons.woff +0 -0
  361. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/breadcrumb.variables +11 -0
  362. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/grid.variables +2 -0
  363. data/share/views/public/plugins/semantic-ui/src/themes/github/collections/table.variables +8 -0
  364. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/header.variables +9 -0
  365. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/icon.overrides +208 -0
  366. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/icon.variables +13 -0
  367. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/image.variables +5 -0
  368. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/input.overrides +32 -0
  369. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/input.variables +16 -0
  370. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/label.overrides +9 -0
  371. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/label.variables +4 -0
  372. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/segment.variables +0 -1
  373. data/share/views/public/plugins/semantic-ui/src/themes/github/elements/step.variables +7 -1
  374. data/share/views/public/plugins/semantic-ui/src/themes/github/globals/site.variables +47 -0
  375. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/dropdown.overrides +53 -0
  376. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/dropdown.variables +35 -0
  377. data/share/views/public/plugins/semantic-ui/src/themes/github/modules/popup.variables +12 -0
  378. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.eot +0 -0
  379. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.svg +2373 -0
  380. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.ttf +0 -0
  381. data/share/views/public/plugins/semantic-ui/src/themes/material/assets/fonts/icons.woff +0 -0
  382. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.overrides +1 -1
  383. data/share/views/public/plugins/semantic-ui/src/themes/material/collections/menu.variables +1 -1
  384. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.overrides +2 -10
  385. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/button.variables +4 -2
  386. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/header.overrides +2 -2
  387. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/icon.overrides +934 -0
  388. data/share/views/public/plugins/semantic-ui/src/themes/material/elements/icon.variables +11 -0
  389. data/share/views/public/plugins/semantic-ui/src/themes/material/globals/site.variables +8 -0
  390. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/dropdown.overrides +2 -2
  391. data/share/views/public/plugins/semantic-ui/src/themes/material/modules/modal.overrides +2 -2
  392. data/share/views/public/plugins/semantic-ui/src/themes/twitter/elements/button.variables +1 -2
  393. data/share/views/public/plugins/semantic-ui/tasks/README.md +2 -2
  394. data/share/views/public/plugins/semantic-ui/tasks/admin/components/create.js +8 -8
  395. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/create.js +6 -6
  396. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/init.js +11 -12
  397. data/share/views/public/plugins/semantic-ui/tasks/admin/distributions/update.js +0 -3
  398. data/share/views/public/plugins/semantic-ui/tasks/build.js +22 -9
  399. data/share/views/public/plugins/semantic-ui/tasks/build/css.js +13 -5
  400. data/share/views/public/plugins/semantic-ui/tasks/collections/build.js +19 -0
  401. data/share/views/public/plugins/semantic-ui/tasks/collections/internal.js +23 -10
  402. data/share/views/public/plugins/semantic-ui/tasks/collections/rtl.js +16 -0
  403. data/share/views/public/plugins/semantic-ui/tasks/config/admin/github.js +1 -2
  404. data/share/views/public/plugins/semantic-ui/tasks/config/admin/oauth.example.js +4 -3
  405. data/share/views/public/plugins/semantic-ui/tasks/config/admin/release.js +1 -0
  406. data/share/views/public/plugins/semantic-ui/tasks/config/admin/templates/README.md +3 -0
  407. data/share/views/public/plugins/semantic-ui/tasks/config/npm/gulpfile.js +3 -3
  408. data/share/views/public/plugins/semantic-ui/tasks/config/project/config.js +3 -4
  409. data/share/views/public/plugins/semantic-ui/tasks/config/project/install.js +13 -6
  410. data/share/views/public/plugins/semantic-ui/tasks/config/project/release.js +16 -12
  411. data/share/views/public/plugins/semantic-ui/tasks/config/tasks.js +11 -5
  412. data/share/views/public/plugins/semantic-ui/tasks/docs/build.js +1 -1
  413. data/share/views/public/plugins/semantic-ui/tasks/docs/metadata.js +6 -5
  414. data/share/views/public/plugins/semantic-ui/tasks/docs/serve.js +2 -2
  415. data/share/views/public/plugins/semantic-ui/tasks/install.js +332 -272
  416. data/share/views/public/plugins/semantic-ui/tasks/rtl/build.js +2 -2
  417. data/share/views/public/plugins/semantic-ui/tasks/rtl/watch.js +2 -2
  418. data/share/views/public/plugins/semantic-ui/tasks/watch.js +7 -4
  419. data/share/views/public/plugins/semantic-ui/test/helpers/sinon.js +11 -11
  420. data/share/views/public/plugins/semantic-ui/test/modules/module.spec.js +1 -1
  421. metadata +109 -2
@@ -3,7 +3,6 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2015 Contributors
7
6
  * Released under the MIT license
8
7
  * http://opensource.org/licenses/MIT
9
8
  *
@@ -3,7 +3,6 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2015 Contributors
7
6
  * Released under the MIT license
8
7
  * http://opensource.org/licenses/MIT
9
8
  *
@@ -13,6 +12,13 @@
13
12
 
14
13
  "use strict";
15
14
 
15
+ window = (typeof window != 'undefined' && window.Math == Math)
16
+ ? window
17
+ : (typeof self != 'undefined' && self.Math == Math)
18
+ ? self
19
+ : Function('return this')()
20
+ ;
21
+
16
22
  $.fn.rating = function(parameters) {
17
23
  var
18
24
  $allModules = $(this),
@@ -48,6 +54,7 @@ $.fn.rating = function(parameters) {
48
54
  $module = $(this),
49
55
  $icon = $module.find(selector.icon),
50
56
 
57
+ initialLoad,
51
58
  module
52
59
  ;
53
60
 
@@ -66,7 +73,9 @@ $.fn.rating = function(parameters) {
66
73
  else {
67
74
  module.disable();
68
75
  }
76
+ module.set.initialLoad();
69
77
  module.set.rating( module.get.initialRating() );
78
+ module.remove.initialLoad();
70
79
  module.instantiate();
71
80
  },
72
81
 
@@ -170,6 +179,9 @@ $.fn.rating = function(parameters) {
170
179
  $module
171
180
  .off(eventNamespace)
172
181
  ;
182
+ },
183
+ initialLoad: function() {
184
+ initialLoad = false;
173
185
  }
174
186
  },
175
187
 
@@ -189,6 +201,12 @@ $.fn.rating = function(parameters) {
189
201
  ;
190
202
  },
191
203
 
204
+ is: {
205
+ initialLoad: function() {
206
+ return initialLoad;
207
+ }
208
+ },
209
+
192
210
  get: {
193
211
  initialRating: function() {
194
212
  if($module.data(metadata.rating) !== undefined) {
@@ -232,11 +250,16 @@ $.fn.rating = function(parameters) {
232
250
  module.verbose('Setting current rating to', rating);
233
251
  $activeIcon
234
252
  .prevAll()
235
- .andSelf()
253
+ .addBack()
236
254
  .addClass(className.active)
237
255
  ;
238
256
  }
239
- settings.onRate.call(element, rating);
257
+ if(!module.is.initialLoad()) {
258
+ settings.onRate.call(element, rating);
259
+ }
260
+ },
261
+ initialLoad: function() {
262
+ initialLoad = true;
240
263
  }
241
264
  },
242
265
 
@@ -246,7 +269,12 @@ $.fn.rating = function(parameters) {
246
269
  $.extend(true, settings, name);
247
270
  }
248
271
  else if(value !== undefined) {
249
- settings[name] = value;
272
+ if($.isPlainObject(settings[name])) {
273
+ $.extend(true, settings[name], value);
274
+ }
275
+ else {
276
+ settings[name] = value;
277
+ }
250
278
  }
251
279
  else {
252
280
  return settings[name];
@@ -264,7 +292,7 @@ $.fn.rating = function(parameters) {
264
292
  }
265
293
  },
266
294
  debug: function() {
267
- if(settings.debug) {
295
+ if(!settings.silent && settings.debug) {
268
296
  if(settings.performance) {
269
297
  module.performance.log(arguments);
270
298
  }
@@ -275,7 +303,7 @@ $.fn.rating = function(parameters) {
275
303
  }
276
304
  },
277
305
  verbose: function() {
278
- if(settings.verbose && settings.debug) {
306
+ if(!settings.silent && settings.verbose && settings.debug) {
279
307
  if(settings.performance) {
280
308
  module.performance.log(arguments);
281
309
  }
@@ -286,8 +314,10 @@ $.fn.rating = function(parameters) {
286
314
  }
287
315
  },
288
316
  error: function() {
289
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
290
- module.error.apply(console, arguments);
317
+ if(!settings.silent) {
318
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
319
+ module.error.apply(console, arguments);
320
+ }
291
321
  },
292
322
  performance: {
293
323
  log: function(message) {
@@ -423,6 +453,7 @@ $.fn.rating.settings = {
423
453
  name : 'Rating',
424
454
  namespace : 'rating',
425
455
 
456
+ slent : false,
426
457
  debug : false,
427
458
  verbose : false,
428
459
  performance : true,
@@ -432,6 +463,8 @@ $.fn.rating.settings = {
432
463
  maxRating : 4,
433
464
  clearable : 'auto',
434
465
 
466
+ fireOnInit : false,
467
+
435
468
  onRate : function(rating){},
436
469
 
437
470
  error : {
@@ -472,4 +505,4 @@ $.fn.rating.settings = {
472
505
 
473
506
  };
474
507
 
475
- })( jQuery, window , document );
508
+ })( jQuery, window, document );
@@ -3,7 +3,6 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2015 Contributors
7
6
  * Released under the MIT license
8
7
  * http://opensource.org/licenses/MIT
9
8
  *
@@ -3,7 +3,6 @@
3
3
  * http://github.com/semantic-org/semantic-ui/
4
4
  *
5
5
  *
6
- * Copyright 2015 Contributors
7
6
  * Released under the MIT license
8
7
  * http://opensource.org/licenses/MIT
9
8
  *
@@ -13,6 +12,13 @@
13
12
 
14
13
  "use strict";
15
14
 
15
+ window = (typeof window != 'undefined' && window.Math == Math)
16
+ ? window
17
+ : (typeof self != 'undefined' && self.Math == Math)
18
+ ? self
19
+ : Function('return this')()
20
+ ;
21
+
16
22
  $.fn.search = function(parameters) {
17
23
  var
18
24
  $allModules = $(this),
@@ -36,6 +42,7 @@ $.fn.search = function(parameters) {
36
42
  className = settings.className,
37
43
  metadata = settings.metadata,
38
44
  regExp = settings.regExp,
45
+ fields = settings.fields,
39
46
  selector = settings.selector,
40
47
  error = settings.error,
41
48
  namespace = settings.namespace,
@@ -53,6 +60,8 @@ $.fn.search = function(parameters) {
53
60
  element = this,
54
61
  instance = $module.data(moduleNamespace),
55
62
 
63
+ disabledBubbled = false,
64
+
56
65
  module
57
66
  ;
58
67
 
@@ -81,6 +90,20 @@ $.fn.search = function(parameters) {
81
90
  ;
82
91
  },
83
92
 
93
+ refresh: function() {
94
+ module.debug('Refreshing selector cache');
95
+ $prompt = $module.find(selector.prompt);
96
+ $searchButton = $module.find(selector.searchButton);
97
+ $category = $module.find(selector.category);
98
+ $results = $module.find(selector.results);
99
+ $result = $module.find(selector.result);
100
+ },
101
+
102
+ refreshResults: function() {
103
+ $results = $module.find(selector.results);
104
+ $result = $module.find(selector.result);
105
+ },
106
+
84
107
  bind: {
85
108
  events: function() {
86
109
  module.verbose('Binding events to search');
@@ -126,17 +149,41 @@ $.fn.search = function(parameters) {
126
149
  module.set.focus();
127
150
  if( module.has.minimumCharacters() ) {
128
151
  module.query();
129
- module.showResults();
152
+ if( module.can.show() ) {
153
+ module.showResults();
154
+ }
130
155
  }
131
156
  },
132
157
  blur: function(event) {
133
158
  var
134
- pageLostFocus = (document.activeElement === this)
159
+ pageLostFocus = (document.activeElement === this),
160
+ callback = function() {
161
+ module.cancel.query();
162
+ module.remove.focus();
163
+ module.timer = setTimeout(module.hideResults, settings.hideDelay);
164
+ }
135
165
  ;
136
- if(!pageLostFocus && !module.resultsClicked) {
137
- module.cancel.query();
138
- module.remove.focus();
139
- module.timer = setTimeout(module.hideResults, settings.hideDelay);
166
+ if(pageLostFocus) {
167
+ return;
168
+ }
169
+ if(module.resultsClicked) {
170
+ module.debug('Determining if user action caused search to close');
171
+ $module
172
+ .one('click.close' + eventNamespace, selector.results, function(event) {
173
+ if(module.is.inMessage(event) || disabledBubbled) {
174
+ $prompt.focus();
175
+ return;
176
+ }
177
+ disabledBubbled = false;
178
+ if( !module.is.animating() && !module.is.hidden()) {
179
+ callback();
180
+ }
181
+ })
182
+ ;
183
+ }
184
+ else {
185
+ module.debug('Input blurred without user action, closing results');
186
+ callback();
140
187
  }
141
188
  },
142
189
  result: {
@@ -151,7 +198,9 @@ $.fn.search = function(parameters) {
151
198
  var
152
199
  $result = $(this),
153
200
  $title = $result.find(selector.title).eq(0),
154
- $link = $result.find('a[href]').eq(0),
201
+ $link = $result.is('a[href]')
202
+ ? $result
203
+ : $result.find('a[href]').eq(0),
155
204
  href = $link.attr('href') || false,
156
205
  target = $link.attr('target') || false,
157
206
  title = $title.html(),
@@ -166,6 +215,7 @@ $.fn.search = function(parameters) {
166
215
  if( $.isFunction(settings.onSelect) ) {
167
216
  if(settings.onSelect.call(element, result, results) === false) {
168
217
  module.debug('Custom onSelect callback cancelled default select action');
218
+ disabledBubbled = true;
169
219
  return;
170
220
  }
171
221
  }
@@ -188,13 +238,15 @@ $.fn.search = function(parameters) {
188
238
  handleKeyboard: function(event) {
189
239
  var
190
240
  // force selector refresh
191
- $result = $module.find(selector.result),
192
- $category = $module.find(selector.category),
193
- currentIndex = $result.index( $result.filter('.' + className.active) ),
194
- resultSize = $result.length,
195
-
196
- keyCode = event.which,
197
- keys = {
241
+ $result = $module.find(selector.result),
242
+ $category = $module.find(selector.category),
243
+ $activeResult = $result.filter('.' + className.active),
244
+ currentIndex = $result.index( $activeResult ),
245
+ resultSize = $result.length,
246
+ hasActiveResult = $activeResult.length > 0,
247
+
248
+ keyCode = event.which,
249
+ keys = {
198
250
  backspace : 8,
199
251
  enter : 13,
200
252
  escape : 27,
@@ -206,9 +258,7 @@ $.fn.search = function(parameters) {
206
258
  // search shortcuts
207
259
  if(keyCode == keys.escape) {
208
260
  module.verbose('Escape key pressed, blurring search field');
209
- $prompt
210
- .trigger('blur')
211
- ;
261
+ module.trigger.blur();
212
262
  }
213
263
  if( module.is.visible() ) {
214
264
  if(keyCode == keys.enter) {
@@ -219,7 +269,7 @@ $.fn.search = function(parameters) {
219
269
  return false;
220
270
  }
221
271
  }
222
- else if(keyCode == keys.upArrow) {
272
+ else if(keyCode == keys.upArrow && hasActiveResult) {
223
273
  module.verbose('Up key pressed, changing active result');
224
274
  newIndex = (currentIndex - 1 < 0)
225
275
  ? currentIndex
@@ -268,18 +318,30 @@ $.fn.search = function(parameters) {
268
318
  },
269
319
 
270
320
  setup: {
271
- api: function() {
321
+ api: function(searchTerm) {
272
322
  var
273
323
  apiSettings = {
274
- debug : settings.debug,
275
- on : false,
276
- cache : 'local',
277
- action : 'search',
278
- onError : module.error
324
+ debug : settings.debug,
325
+ on : false,
326
+ cache : true,
327
+ action : 'search',
328
+ urlData : {
329
+ query : searchTerm
330
+ },
331
+ onSuccess : function(response) {
332
+ module.parse.response.call(element, response, searchTerm);
333
+ },
334
+ onAbort : function(response) {
335
+ },
336
+ onFailure : function() {
337
+ module.displayMessage(error.serverError);
338
+ },
339
+ onError : module.error
279
340
  },
280
341
  searchHTML
281
342
  ;
282
- module.verbose('First request, initializing API');
343
+ $.extend(true, apiSettings, settings.apiSettings);
344
+ module.verbose('Setting up API request', apiSettings);
283
345
  $module.api(apiSettings);
284
346
  }
285
347
  },
@@ -288,12 +350,31 @@ $.fn.search = function(parameters) {
288
350
  useAPI: function() {
289
351
  return $.fn.api !== undefined;
290
352
  },
353
+ show: function() {
354
+ return module.is.focused() && !module.is.visible() && !module.is.empty();
355
+ },
291
356
  transition: function() {
292
357
  return settings.transition && $.fn.transition !== undefined && $module.transition('is supported');
293
358
  }
294
359
  },
295
360
 
296
361
  is: {
362
+ animating: function() {
363
+ return $results.hasClass(className.animating);
364
+ },
365
+ hidden: function() {
366
+ return $results.hasClass(className.hidden);
367
+ },
368
+ inMessage: function(event) {
369
+ if(!event.target) {
370
+ return;
371
+ }
372
+ var
373
+ $target = $(event.target),
374
+ isInDOM = $.contains(document.documentElement, event.target)
375
+ ;
376
+ return (isInDOM && $target.closest(selector.message).length > 0);
377
+ },
297
378
  empty: function() {
298
379
  return ($results.html() === '');
299
380
  },
@@ -305,6 +386,20 @@ $.fn.search = function(parameters) {
305
386
  }
306
387
  },
307
388
 
389
+ trigger: {
390
+ blur: function() {
391
+ var
392
+ events = document.createEvent('HTMLEvents'),
393
+ promptElement = $prompt[0]
394
+ ;
395
+ if(promptElement) {
396
+ module.verbose('Triggering native blur event');
397
+ events.initEvent('blur', false, false);
398
+ promptElement.dispatchEvent(events);
399
+ }
400
+ }
401
+ },
402
+
308
403
  get: {
309
404
  inputEvent: function() {
310
405
  var
@@ -344,7 +439,7 @@ $.fn.search = function(parameters) {
344
439
  $.each(results, function(index, category) {
345
440
  if($.isArray(category.results)) {
346
441
  result = module.search.object(value, category.results, lookupFields)[0];
347
- // dont continue searching if a result is found
442
+ // don't continue searching if a result is found
348
443
  if(result) {
349
444
  return false;
350
445
  }
@@ -359,6 +454,13 @@ $.fn.search = function(parameters) {
359
454
  },
360
455
  },
361
456
 
457
+ select: {
458
+ firstResult: function() {
459
+ module.verbose('Selecting first result');
460
+ $result.first().addClass(className.active);
461
+ }
462
+ },
463
+
362
464
  set: {
363
465
  focus: function() {
364
466
  $module.addClass(className.focus);
@@ -418,8 +520,8 @@ $.fn.search = function(parameters) {
418
520
  else {
419
521
  module.error(error.source);
420
522
  }
421
- settings.onSearchQuery.call(element, searchTerm);
422
523
  }
524
+ settings.onSearchQuery.call(element, searchTerm);
423
525
  }
424
526
  else {
425
527
  module.hideResults();
@@ -448,27 +550,11 @@ $.fn.search = function(parameters) {
448
550
  });
449
551
  },
450
552
  remote: function(searchTerm) {
451
- var
452
- apiSettings = {
453
- onSuccess : function(response) {
454
- module.parse.response.call(element, response, searchTerm);
455
- },
456
- onFailure: function() {
457
- module.displayMessage(error.serverError);
458
- },
459
- urlData: {
460
- query: searchTerm
461
- }
462
- }
463
- ;
464
- if( !$module.api('get request') ) {
465
- module.setup.api();
553
+ if($module.api('is loading')) {
554
+ $module.api('abort');
466
555
  }
467
- $.extend(true, apiSettings, settings.apiSettings);
468
- module.debug('Executing search', apiSettings);
469
- module.cancel.query();
556
+ module.setup.api(searchTerm);
470
557
  $module
471
- .api('setting', apiSettings)
472
558
  .api('query')
473
559
  ;
474
560
  },
@@ -566,14 +652,14 @@ $.fn.search = function(parameters) {
566
652
  ;
567
653
  module.verbose('Parsing server response', response);
568
654
  if(response !== undefined) {
569
- if(searchTerm !== undefined && response.results !== undefined) {
655
+ if(searchTerm !== undefined && response[fields.results] !== undefined) {
570
656
  module.addResults(searchHTML);
571
- module.inject.id(response.results);
657
+ module.inject.id(response[fields.results]);
572
658
  module.write.cache(searchTerm, {
573
659
  html : searchHTML,
574
- results : response.results
660
+ results : response[fields.results]
575
661
  });
576
- module.save.results(response.results);
662
+ module.save.results(response[fields.results]);
577
663
  }
578
664
  }
579
665
  }
@@ -749,14 +835,23 @@ $.fn.search = function(parameters) {
749
835
  return false;
750
836
  }
751
837
  }
752
- $results
753
- .html(html)
754
- ;
755
- module.showResults();
838
+ if(html) {
839
+ $results
840
+ .html(html)
841
+ ;
842
+ module.refreshResults();
843
+ if(settings.selectFirstResult) {
844
+ module.select.firstResult();
845
+ }
846
+ module.showResults();
847
+ }
848
+ else {
849
+ module.hideResults();
850
+ }
756
851
  },
757
852
 
758
853
  showResults: function() {
759
- if( !module.is.visible() && module.is.focused() && !module.is.empty() ) {
854
+ if(!module.is.visible()) {
760
855
  if( module.can.transition() ) {
761
856
  module.debug('Showing results with css animations');
762
857
  $results
@@ -808,8 +903,8 @@ $.fn.search = function(parameters) {
808
903
  module.debug('Generating html from response', response);
809
904
  var
810
905
  template = settings.templates[settings.type],
811
- isProperObject = ($.isPlainObject(response.results) && !$.isEmptyObject(response.results)),
812
- isProperArray = ($.isArray(response.results) && response.results.length > 0),
906
+ isProperObject = ($.isPlainObject(response[fields.results]) && !$.isEmptyObject(response[fields.results])),
907
+ isProperArray = ($.isArray(response[fields.results]) && response[fields.results].length > 0),
813
908
  html = ''
814
909
  ;
815
910
  if(isProperObject || isProperArray ) {
@@ -820,17 +915,17 @@ $.fn.search = function(parameters) {
820
915
  }
821
916
  }
822
917
  else {
823
- response.results = response.results.slice(0, settings.maxResults);
918
+ response[fields.results] = response[fields.results].slice(0, settings.maxResults);
824
919
  }
825
920
  }
826
921
  if($.isFunction(template)) {
827
- html = template(response);
922
+ html = template(response, fields);
828
923
  }
829
924
  else {
830
925
  module.error(error.noTemplate, false);
831
926
  }
832
927
  }
833
- else {
928
+ else if(settings.showNoResults) {
834
929
  html = module.displayMessage(error.noResults, 'empty');
835
930
  }
836
931
  settings.onResults.call(element, response);
@@ -867,7 +962,7 @@ $.fn.search = function(parameters) {
867
962
  }
868
963
  },
869
964
  debug: function() {
870
- if(settings.debug) {
965
+ if(!settings.silent && settings.debug) {
871
966
  if(settings.performance) {
872
967
  module.performance.log(arguments);
873
968
  }
@@ -878,7 +973,7 @@ $.fn.search = function(parameters) {
878
973
  }
879
974
  },
880
975
  verbose: function() {
881
- if(settings.verbose && settings.debug) {
976
+ if(!settings.silent && settings.verbose && settings.debug) {
882
977
  if(settings.performance) {
883
978
  module.performance.log(arguments);
884
979
  }
@@ -889,8 +984,10 @@ $.fn.search = function(parameters) {
889
984
  }
890
985
  },
891
986
  error: function() {
892
- module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
893
- module.error.apply(console, arguments);
987
+ if(!settings.silent) {
988
+ module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');
989
+ module.error.apply(console, arguments);
990
+ }
894
991
  },
895
992
  performance: {
896
993
  log: function(message) {
@@ -1024,48 +1121,58 @@ $.fn.search = function(parameters) {
1024
1121
 
1025
1122
  $.fn.search.settings = {
1026
1123
 
1027
- name : 'Search',
1028
- namespace : 'search',
1124
+ name : 'Search',
1125
+ namespace : 'search',
1029
1126
 
1030
- debug : false,
1031
- verbose : false,
1032
- performance : true,
1127
+ silent : false,
1128
+ debug : false,
1129
+ verbose : false,
1130
+ performance : true,
1033
1131
 
1034
- type : 'standard',
1035
1132
  // template to use (specified in settings.templates)
1133
+ type : 'standard',
1036
1134
 
1037
- minCharacters : 1,
1038
1135
  // minimum characters required to search
1136
+ minCharacters : 1,
1137
+
1138
+ // whether to select first result after searching automatically
1139
+ selectFirstResult : false,
1039
1140
 
1040
- apiSettings : false,
1041
1141
  // API config
1142
+ apiSettings : false,
1042
1143
 
1043
- source : false,
1044
1144
  // object to search
1145
+ source : false,
1045
1146
 
1147
+ // fields to search
1046
1148
  searchFields : [
1047
1149
  'title',
1048
1150
  'description'
1049
1151
  ],
1050
- // fields to search
1051
1152
 
1052
- searchFullText : true,
1153
+ // field to display in standard results template
1154
+ displayField : '',
1155
+
1053
1156
  // whether to include fuzzy results in local search
1157
+ searchFullText : true,
1054
1158
 
1055
- automatic : true,
1056
1159
  // whether to add events to prompt automatically
1160
+ automatic : true,
1057
1161
 
1058
- hideDelay : 0,
1059
1162
  // delay before hiding menu after blur
1163
+ hideDelay : 0,
1060
1164
 
1061
- searchDelay : 200,
1062
1165
  // delay before searching
1166
+ searchDelay : 200,
1063
1167
 
1064
- maxResults : 7,
1065
1168
  // maximum results returned from local
1169
+ maxResults : 7,
1066
1170
 
1067
- cache : true,
1068
1171
  // whether to store lookups in local cache
1172
+ cache : true,
1173
+
1174
+ // whether no results errors should be shown
1175
+ showNoResults : true,
1069
1176
 
1070
1177
  // transition settings
1071
1178
  transition : 'scale',
@@ -1076,19 +1183,21 @@ $.fn.search.settings = {
1076
1183
  onSelect : false,
1077
1184
  onResultsAdd : false,
1078
1185
 
1079
- onSearchQuery : function(){},
1186
+ onSearchQuery : function(query){},
1080
1187
  onResults : function(response){},
1081
1188
 
1082
1189
  onResultsOpen : function(){},
1083
1190
  onResultsClose : function(){},
1084
1191
 
1085
1192
  className: {
1086
- active : 'active',
1087
- empty : 'empty',
1088
- focus : 'focus',
1089
- loading : 'loading',
1090
- results : 'results',
1091
- pressed : 'down'
1193
+ animating : 'animating',
1194
+ active : 'active',
1195
+ empty : 'empty',
1196
+ focus : 'focus',
1197
+ hidden : 'hidden',
1198
+ loading : 'loading',
1199
+ results : 'results',
1200
+ pressed : 'down'
1092
1201
  },
1093
1202
 
1094
1203
  error : {
@@ -1113,10 +1222,27 @@ $.fn.search.settings = {
1113
1222
  beginsWith : '(?:\s|^)'
1114
1223
  },
1115
1224
 
1225
+ // maps api response attributes to internal representation
1226
+ fields: {
1227
+ categories : 'results', // array of categories (category view)
1228
+ categoryName : 'name', // name of category (category view)
1229
+ categoryResults : 'results', // array of results (category view)
1230
+ description : 'description', // result description
1231
+ image : 'image', // result image
1232
+ price : 'price', // result price
1233
+ results : 'results', // array of results (standard)
1234
+ title : 'title', // result title
1235
+ url : 'url', // result url
1236
+ action : 'action', // "view more" object name
1237
+ actionText : 'text', // "view more" text
1238
+ actionURL : 'url' // "view more" url
1239
+ },
1240
+
1116
1241
  selector : {
1117
1242
  prompt : '.prompt',
1118
1243
  searchButton : '.search.button',
1119
1244
  results : '.results',
1245
+ message : '.results > .message',
1120
1246
  category : '.category',
1121
1247
  result : '.result',
1122
1248
  title : '.title, .name'
@@ -1166,95 +1292,98 @@ $.fn.search.settings = {
1166
1292
  }
1167
1293
  return html;
1168
1294
  },
1169
- category: function(response) {
1295
+ category: function(response, fields) {
1170
1296
  var
1171
1297
  html = '',
1172
1298
  escape = $.fn.search.settings.templates.escape
1173
1299
  ;
1174
- if(response.results !== undefined) {
1300
+ if(response[fields.categoryResults] !== undefined) {
1301
+
1175
1302
  // each category
1176
- $.each(response.results, function(index, category) {
1177
- if(category.results !== undefined && category.results.length > 0) {
1178
- html += ''
1179
- + '<div class="category">'
1180
- + '<div class="name">' + category.name + '</div>'
1181
- ;
1303
+ $.each(response[fields.categoryResults], function(index, category) {
1304
+ if(category[fields.results] !== undefined && category.results.length > 0) {
1305
+
1306
+ html += '<div class="category">';
1307
+
1308
+ if(category[fields.categoryName] !== undefined) {
1309
+ html += '<div class="name">' + category[fields.categoryName] + '</div>';
1310
+ }
1311
+
1182
1312
  // each item inside category
1183
1313
  $.each(category.results, function(index, result) {
1184
- html += '<div class="result">';
1185
- if(result.url) {
1186
- html += '<a href="' + result.url + '"></a>';
1314
+ if(result[fields.url]) {
1315
+ html += '<a class="result" href="' + result[fields.url] + '">';
1187
1316
  }
1188
- if(result.image !== undefined) {
1189
- result.image = escape(result.image);
1317
+ else {
1318
+ html += '<a class="result">';
1319
+ }
1320
+ if(result[fields.image] !== undefined) {
1190
1321
  html += ''
1191
1322
  + '<div class="image">'
1192
- + ' <img src="' + result.image + '" alt="">'
1323
+ + ' <img src="' + result[fields.image] + '">'
1193
1324
  + '</div>'
1194
1325
  ;
1195
1326
  }
1196
1327
  html += '<div class="content">';
1197
- if(result.price !== undefined) {
1198
- result.price = escape(result.price);
1199
- html += '<div class="price">' + result.price + '</div>';
1328
+ if(result[fields.price] !== undefined) {
1329
+ html += '<div class="price">' + result[fields.price] + '</div>';
1200
1330
  }
1201
- if(result.title !== undefined) {
1202
- result.title = escape(result.title);
1203
- html += '<div class="title">' + result.title + '</div>';
1331
+ if(result[fields.title] !== undefined) {
1332
+ html += '<div class="title">' + result[fields.title] + '</div>';
1204
1333
  }
1205
- if(result.description !== undefined) {
1206
- html += '<div class="description">' + result.description + '</div>';
1334
+ if(result[fields.description] !== undefined) {
1335
+ html += '<div class="description">' + result[fields.description] + '</div>';
1207
1336
  }
1208
1337
  html += ''
1209
1338
  + '</div>'
1210
- + '</div>'
1211
1339
  ;
1340
+ html += '</a>';
1212
1341
  });
1213
1342
  html += ''
1214
1343
  + '</div>'
1215
1344
  ;
1216
1345
  }
1217
1346
  });
1218
- if(response.action) {
1347
+ if(response[fields.action]) {
1219
1348
  html += ''
1220
- + '<a href="' + response.action.url + '" class="action">'
1221
- + response.action.text
1349
+ + '<a href="' + response[fields.action][fields.actionURL] + '" class="action">'
1350
+ + response[fields.action][fields.actionText]
1222
1351
  + '</a>';
1223
1352
  }
1224
1353
  return html;
1225
1354
  }
1226
1355
  return false;
1227
1356
  },
1228
- standard: function(response) {
1357
+ standard: function(response, fields) {
1229
1358
  var
1230
1359
  html = ''
1231
1360
  ;
1232
- if(response.results !== undefined) {
1361
+ if(response[fields.results] !== undefined) {
1233
1362
 
1234
1363
  // each result
1235
- $.each(response.results, function(index, result) {
1236
- if(result.url) {
1237
- html += '<a class="result" href="' + result.url + '">';
1364
+ $.each(response[fields.results], function(index, result) {
1365
+ if(result[fields.url]) {
1366
+ html += '<a class="result" href="' + result[fields.url] + '">';
1238
1367
  }
1239
1368
  else {
1240
1369
  html += '<a class="result">';
1241
1370
  }
1242
- if(result.image !== undefined) {
1371
+ if(result[fields.image] !== undefined) {
1243
1372
  html += ''
1244
1373
  + '<div class="image">'
1245
- + ' <img src="' + result.image + '">'
1374
+ + ' <img src="' + result[fields.image] + '">'
1246
1375
  + '</div>'
1247
1376
  ;
1248
1377
  }
1249
1378
  html += '<div class="content">';
1250
- if(result.price !== undefined) {
1251
- html += '<div class="price">' + result.price + '</div>';
1379
+ if(result[fields.price] !== undefined) {
1380
+ html += '<div class="price">' + result[fields.price] + '</div>';
1252
1381
  }
1253
- if(result.title !== undefined) {
1254
- html += '<div class="title">' + result.title + '</div>';
1382
+ if(result[fields.title] !== undefined) {
1383
+ html += '<div class="title">' + result[fields.title] + '</div>';
1255
1384
  }
1256
- if(result.description !== undefined) {
1257
- html += '<div class="description">' + result.description + '</div>';
1385
+ if(result[fields.description] !== undefined) {
1386
+ html += '<div class="description">' + result[fields.description] + '</div>';
1258
1387
  }
1259
1388
  html += ''
1260
1389
  + '</div>'
@@ -1262,10 +1391,10 @@ $.fn.search.settings = {
1262
1391
  html += '</a>';
1263
1392
  });
1264
1393
 
1265
- if(response.action) {
1394
+ if(response[fields.action]) {
1266
1395
  html += ''
1267
- + '<a href="' + response.action.url + '" class="action">'
1268
- + response.action.text
1396
+ + '<a href="' + response[fields.action][fields.actionURL] + '" class="action">'
1397
+ + response[fields.action][fields.actionText]
1269
1398
  + '</a>';
1270
1399
  }
1271
1400
  return html;
@@ -1275,4 +1404,4 @@ $.fn.search.settings = {
1275
1404
  }
1276
1405
  };
1277
1406
 
1278
- })( jQuery, window , document );
1407
+ })( jQuery, window, document );