sequenceserver 2.0.0.rc8 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sequenceserver might be problematic. Click here for more details.

Files changed (758) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sequenceserver +22 -30
  3. data/lib/sequenceserver/api_errors.rb +29 -3
  4. data/lib/sequenceserver/blast/constants.rb +1 -1
  5. data/lib/sequenceserver/blast/hit.rb +5 -16
  6. data/lib/sequenceserver/blast/job.rb +49 -24
  7. data/lib/sequenceserver/blast/report.rb +38 -30
  8. data/lib/sequenceserver/config.rb +52 -27
  9. data/lib/sequenceserver/database.rb +69 -9
  10. data/lib/sequenceserver/job.rb +14 -4
  11. data/lib/sequenceserver/job_remover.rb +25 -29
  12. data/lib/sequenceserver/makeblastdb.rb +40 -45
  13. data/lib/sequenceserver/refinements.rb +15 -0
  14. data/lib/sequenceserver/routes.rb +70 -4
  15. data/lib/sequenceserver/sequence.rb +8 -7
  16. data/lib/sequenceserver/sys.rb +2 -2
  17. data/lib/sequenceserver/version.rb +1 -1
  18. data/lib/sequenceserver/zip_file_generator.rb +56 -0
  19. data/lib/sequenceserver.rb +16 -11
  20. data/public/config.js +62 -55
  21. data/public/css/fonts.css +23 -22
  22. data/public/css/grapher.css +598 -594
  23. data/public/css/sequenceserver.css +130 -27
  24. data/public/css/sequenceserver.min.css +3 -3
  25. data/public/js/alignment_exporter.js +30 -22
  26. data/public/js/circos.js +370 -234
  27. data/public/js/cloud_share_modal.js +216 -0
  28. data/public/js/databases.js +144 -0
  29. data/public/js/databases_tree.js +144 -0
  30. data/public/js/dnd.js +164 -0
  31. data/public/js/download_fasta.js +1 -1
  32. data/public/js/error_modal.js +4 -11
  33. data/public/js/exporter.js +7 -3
  34. data/public/js/form.js +260 -0
  35. data/public/js/grapher.js +113 -106
  36. data/public/js/hit.js +84 -67
  37. data/public/js/hits_overview.js +3 -3
  38. data/public/js/hsp.js +343 -288
  39. data/public/js/jquery_world.js +4 -4
  40. data/public/js/length_distribution.js +5 -5
  41. data/public/js/mailto.js +36 -0
  42. data/public/js/options.js +84 -0
  43. data/public/js/query.js +321 -64
  44. data/public/js/report.js +322 -288
  45. data/public/js/report_root.js +75 -0
  46. data/public/js/search.js +28 -992
  47. data/public/js/search_button.js +195 -0
  48. data/public/js/sequence.js +2409 -2411
  49. data/public/js/sequence_modal.js +152 -159
  50. data/public/js/share_url.js +23 -0
  51. data/public/js/sidebar.js +265 -86
  52. data/public/js/svgExporter.js +12 -12
  53. data/public/js/tests/database.spec.js +60 -0
  54. data/public/js/tests/mock_data/databases.json +91 -0
  55. data/public/js/tests/mock_data/long_response.json +269 -0
  56. data/public/js/tests/mock_data/short_response.json +2240 -0
  57. data/public/js/tests/report.spec.js +99 -0
  58. data/public/js/tests/search_button.spec.js +14 -0
  59. data/public/js/tests/search_query.spec.js +41 -0
  60. data/public/js/visualisation_helpers.js +4 -5
  61. data/public/packages/circosJS@1.7.0.js +1640 -0
  62. data/public/packages/jquery-ui@1.11.4.js +16624 -0
  63. data/public/sequenceserver-report.min.js +2425 -19
  64. data/public/sequenceserver-search.min.js +2337 -11
  65. data/public/vendor/github/jspm/nodelibs-assert@0.1.0/index.js +2 -0
  66. data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-assert@0.1.0}/package.json +1 -1
  67. data/public/vendor/github/jspm/nodelibs-assert@0.1.0.js +1 -0
  68. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1/package.json +6 -0
  69. data/public/vendor/github/jspm/nodelibs-buffer@0.1.1.js +1 -0
  70. data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/package.json +2 -2
  71. data/public/vendor/github/jspm/nodelibs-process@0.1.2.js +1 -0
  72. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/index.js +2 -0
  73. data/public/vendor/github/jspm/nodelibs-vm@0.1.0/package.json +6 -0
  74. data/public/vendor/github/jspm/nodelibs-vm@0.1.0.js +1 -0
  75. data/public/vendor/github/vakata/jstree@3.3.8/LICENSE-MIT +22 -0
  76. data/public/vendor/github/vakata/jstree@3.3.8/README.md +663 -0
  77. data/public/vendor/github/vakata/jstree@3.3.8/bower.json +33 -0
  78. data/public/vendor/github/vakata/jstree@3.3.8/component.json +28 -0
  79. data/public/vendor/github/vakata/jstree@3.3.8/composer.json +46 -0
  80. data/public/vendor/github/vakata/jstree@3.3.8/demo/README.md +2 -0
  81. data/public/vendor/github/vakata/jstree@3.3.8/demo/basic/index.html +146 -0
  82. data/public/vendor/github/vakata/jstree@3.3.8/demo/basic/root.json +1 -0
  83. data/public/vendor/github/vakata/jstree@3.3.8/dist/jstree.js +8612 -0
  84. data/public/vendor/github/vakata/jstree@3.3.8/dist/jstree.min.js +6 -0
  85. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/32px.png +0 -0
  86. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/40px.png +0 -0
  87. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/style.css +1102 -0
  88. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/style.min.css +1 -0
  89. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/throbber.gif +0 -0
  90. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/32px.png +0 -0
  91. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/40px.png +0 -0
  92. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/style.css +1146 -0
  93. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/style.min.css +1 -0
  94. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/throbber.gif +0 -0
  95. data/public/vendor/github/vakata/jstree@3.3.8/gruntfile.js +242 -0
  96. data/public/vendor/github/vakata/jstree@3.3.8/jstree.jquery.json +28 -0
  97. data/public/vendor/github/vakata/jstree@3.3.8/package.json +58 -0
  98. data/public/vendor/github/vakata/jstree@3.3.8/src/intro.js +14 -0
  99. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.changed.js +69 -0
  100. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.checkbox.js +976 -0
  101. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.conditionalselect.js +38 -0
  102. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.contextmenu.js +661 -0
  103. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.dnd.js +669 -0
  104. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.js +4931 -0
  105. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.massload.js +137 -0
  106. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.search.js +421 -0
  107. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.sort.js +74 -0
  108. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.state.js +138 -0
  109. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.types.js +372 -0
  110. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.unique.js +164 -0
  111. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.wholerow.js +122 -0
  112. data/public/vendor/github/vakata/jstree@3.3.8/src/misc.js +656 -0
  113. data/public/vendor/github/vakata/jstree@3.3.8/src/outro.js +1 -0
  114. data/public/vendor/github/vakata/jstree@3.3.8/src/sample.js +93 -0
  115. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/base.less +93 -0
  116. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/32px.png +0 -0
  117. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/40px.png +0 -0
  118. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/style.css +1102 -0
  119. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/style.less +22 -0
  120. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/throbber.gif +0 -0
  121. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/32px.png +0 -0
  122. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/40px.png +0 -0
  123. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/style.css +1146 -0
  124. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/style.less +50 -0
  125. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/throbber.gif +0 -0
  126. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/main.less +77 -0
  127. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/mixins.less +104 -0
  128. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/responsive.less +67 -0
  129. data/public/vendor/github/vakata/jstree@3.3.8/src/vakata-jstree.js +38 -0
  130. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/index.html +16 -0
  131. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/libs/qunit.css +244 -0
  132. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/libs/qunit.js +2212 -0
  133. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/test.js +11 -0
  134. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/desktop/index.html +44 -0
  135. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/mobile/index.html +42 -0
  136. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/desktop/desktop.png +0 -0
  137. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/desktop/home.png +0 -0
  138. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/mobile/home.png +0 -0
  139. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/mobile/mobile.png +0 -0
  140. data/public/vendor/github/vakata/jstree@3.3.8.js +3 -0
  141. data/public/vendor/npm/assert@1.5.0/CHANGELOG.md +8 -0
  142. data/public/vendor/npm/assert@1.5.0/README.md +105 -0
  143. data/public/vendor/npm/assert@1.5.0/assert.js +327 -0
  144. data/public/vendor/npm/assert@1.5.0/package.json +32 -0
  145. data/public/vendor/npm/assert@1.5.0/test.js +288 -0
  146. data/public/vendor/npm/assert@1.5.0.js +1 -0
  147. data/public/vendor/npm/{base64-js@0.0.8/LICENSE.MIT → base64-js@1.5.1/LICENSE} +1 -1
  148. data/public/vendor/npm/{base64-js@0.0.8 → base64-js@1.5.1}/README.md +10 -7
  149. data/public/vendor/npm/base64-js@1.5.1/base64js.min.js +3 -0
  150. data/public/vendor/npm/base64-js@1.5.1/index.d.ts +3 -0
  151. data/public/vendor/npm/base64-js@1.5.1/index.js +151 -0
  152. data/public/vendor/npm/base64-js@1.5.1/package.json +47 -0
  153. data/public/vendor/npm/base64-js@1.5.1.js +1 -0
  154. data/public/vendor/npm/buffer@5.7.1/AUTHORS.md +70 -0
  155. data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/README.md +111 -41
  156. data/public/vendor/npm/buffer@5.7.1/index.d.ts +186 -0
  157. data/public/vendor/npm/buffer@5.7.1/index.js +1817 -0
  158. data/public/vendor/npm/buffer@5.7.1/package.json +96 -0
  159. data/public/vendor/npm/buffer@5.7.1.js +1 -0
  160. data/public/vendor/npm/core-util-is@1.0.3/LICENSE +19 -0
  161. data/public/vendor/npm/core-util-is@1.0.3/lib/util.js +64 -0
  162. data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/package.json +13 -1
  163. data/public/vendor/npm/core-util-is@1.0.3.js +1 -0
  164. data/public/vendor/npm/events@1.0.2/tests/add-listeners.js +2 -2
  165. data/public/vendor/npm/events@1.0.2/tests/check-listener-leaks.js +3 -3
  166. data/public/vendor/npm/events@1.0.2/tests/common.js +1 -1
  167. data/public/vendor/npm/events@1.0.2/tests/index.js +13 -13
  168. data/public/vendor/npm/events@1.0.2/tests/listeners-side-effects.js +2 -2
  169. data/public/vendor/npm/events@1.0.2/tests/listeners.js +2 -2
  170. data/public/vendor/npm/events@1.0.2/tests/max-listeners.js +2 -2
  171. data/public/vendor/npm/events@1.0.2/tests/modify-in-emit.js +2 -2
  172. data/public/vendor/npm/events@1.0.2/tests/num-args.js +2 -2
  173. data/public/vendor/npm/events@1.0.2/tests/once.js +2 -2
  174. data/public/vendor/npm/events@1.0.2/tests/remove-all-listeners.js +3 -3
  175. data/public/vendor/npm/events@1.0.2/tests/remove-listeners.js +3 -3
  176. data/public/vendor/npm/events@1.0.2/tests/set-max-listeners-side-effects.js +2 -2
  177. data/public/vendor/npm/events@1.0.2/tests/subclass.js +3 -3
  178. data/public/vendor/npm/events@1.0.2.js +1 -1
  179. data/public/vendor/npm/ieee754@1.2.1/LICENSE +11 -0
  180. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/README.md +12 -8
  181. data/public/vendor/npm/ieee754@1.2.1/index.d.ts +10 -0
  182. data/public/vendor/npm/{ieee754@1.1.6 → ieee754@1.2.1}/index.js +6 -6
  183. data/public/vendor/npm/ieee754@1.2.1/package.json +52 -0
  184. data/public/vendor/npm/ieee754@1.2.1.js +1 -0
  185. data/public/vendor/npm/{is-array@1.0.1 → indexof@0.0.1}/Makefile +3 -3
  186. data/public/vendor/npm/indexof@0.0.1/Readme.md +15 -0
  187. data/public/vendor/npm/indexof@0.0.1/component.json +10 -0
  188. data/public/vendor/npm/indexof@0.0.1/index.js +11 -0
  189. data/public/vendor/npm/indexof@0.0.1/package.json +12 -0
  190. data/public/vendor/npm/indexof@0.0.1.js +1 -0
  191. data/public/vendor/npm/inherits@2.0.1/inherits.js +1 -1
  192. data/public/vendor/npm/inherits@2.0.1.js +1 -1
  193. data/public/vendor/npm/isarray@0.0.1.js +1 -1
  194. data/public/vendor/npm/js-tokens@4.0.0/index.js +23 -0
  195. data/public/vendor/npm/js-tokens@4.0.0/package.json +30 -0
  196. data/public/vendor/npm/js-tokens@4.0.0.js +1 -0
  197. data/public/vendor/npm/loose-envify@1.4.0/LICENSE +21 -0
  198. data/public/vendor/npm/loose-envify@1.4.0/README.md +45 -0
  199. data/public/vendor/npm/loose-envify@1.4.0/cli.js +12 -0
  200. data/public/vendor/npm/loose-envify@1.4.0/custom.js +3 -0
  201. data/public/vendor/npm/loose-envify@1.4.0/index.js +5 -0
  202. data/public/vendor/npm/loose-envify@1.4.0/loose-envify.js +33 -0
  203. data/public/vendor/npm/loose-envify@1.4.0/package.json +36 -0
  204. data/public/vendor/npm/loose-envify@1.4.0/replace.js +52 -0
  205. data/public/vendor/npm/loose-envify@1.4.0.js +1 -0
  206. data/public/vendor/npm/object-assign@4.1.1/index.js +90 -0
  207. data/public/vendor/npm/object-assign@4.1.1/package.json +42 -0
  208. data/public/vendor/npm/object-assign@4.1.1.js +1 -0
  209. data/public/vendor/npm/path-browserify@0.0.0/index.js +1 -1
  210. data/public/vendor/npm/path-browserify@0.0.0.js +1 -1
  211. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/README.md +4 -1
  212. data/public/vendor/npm/process@0.11.10/browser.js +184 -0
  213. data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/package.json +10 -1
  214. data/public/vendor/npm/process@0.11.10/test.js +185 -0
  215. data/public/vendor/npm/process@0.11.10.js +1 -0
  216. data/public/vendor/npm/react-dom@18.0.0/LICENSE +21 -0
  217. data/public/vendor/npm/react-dom@18.0.0/README.md +50 -0
  218. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.development.js +4771 -0
  219. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.browser.production.min.js +85 -0
  220. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.development.js +4813 -0
  221. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server-legacy.node.production.min.js +1705 -0
  222. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.development.js +4746 -0
  223. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.browser.production.min.js +90 -0
  224. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.development.js +4714 -0
  225. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-server.node.production.min.js +1746 -0
  226. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.development.js +1017 -0
  227. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom-test-utils.production.min.js +617 -0
  228. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.development.js +20092 -0
  229. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.production.min.js +322 -0
  230. data/public/vendor/npm/react-dom@18.0.0/cjs/react-dom.profiling.min.js +364 -0
  231. data/public/vendor/npm/react-dom@18.0.0/client.js +27 -0
  232. data/public/vendor/npm/react-dom@18.0.0/index.js +23 -0
  233. data/public/vendor/npm/react-dom@18.0.0/package.json +62 -0
  234. data/public/vendor/npm/react-dom@18.0.0/profiling.js +23 -0
  235. data/public/vendor/npm/react-dom@18.0.0/server.browser.js +19 -0
  236. data/public/vendor/npm/react-dom@18.0.0/server.js +3 -0
  237. data/public/vendor/npm/react-dom@18.0.0/server.node.js +19 -0
  238. data/public/vendor/npm/react-dom@18.0.0/test-utils.js +9 -0
  239. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.development.js +4770 -0
  240. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server-legacy.browser.production.min.js +72 -0
  241. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.development.js +4745 -0
  242. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-server.browser.production.min.js +74 -0
  243. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.development.js +1013 -0
  244. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom-test-utils.production.min.js +625 -0
  245. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.development.js +20106 -0
  246. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.production.min.js +269 -0
  247. data/public/vendor/npm/react-dom@18.0.0/umd/react-dom.profiling.min.js +285 -0
  248. data/public/vendor/npm/react-dom@18.0.0.js +1 -0
  249. data/public/vendor/npm/react@18.0.0/LICENSE +21 -0
  250. data/public/vendor/npm/react@18.0.0/README.md +13 -0
  251. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.development.js +837 -0
  252. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.production.min.js +10 -0
  253. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
  254. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.development.js +849 -0
  255. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.production.min.js +38 -0
  256. data/public/vendor/npm/react@18.0.0/cjs/react-jsx-runtime.profiling.min.js +38 -0
  257. data/public/vendor/npm/react@18.0.0/cjs/react.development.js +1746 -0
  258. data/public/vendor/npm/react@18.0.0/cjs/react.production.min.js +26 -0
  259. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.development.js +10 -0
  260. data/public/vendor/npm/react@18.0.0/cjs/react.shared-subset.production.min.js +12 -0
  261. data/public/vendor/npm/react@18.0.0/index.js +9 -0
  262. data/public/vendor/npm/react@18.0.0/jsx-dev-runtime.js +9 -0
  263. data/public/vendor/npm/react@18.0.0/jsx-runtime.js +9 -0
  264. data/public/vendor/npm/react@18.0.0/package.json +47 -0
  265. data/public/vendor/npm/react@18.0.0/react.shared-subset.js +9 -0
  266. data/public/vendor/npm/react@18.0.0/umd/react.development.js +2186 -0
  267. data/public/vendor/npm/react@18.0.0/umd/react.production.min.js +33 -0
  268. data/public/vendor/npm/react@18.0.0/umd/react.profiling.min.js +33 -0
  269. data/public/vendor/npm/react@18.0.0.js +1 -0
  270. data/public/vendor/npm/readable-stream@1.1.14/LICENSE +18 -0
  271. data/public/vendor/npm/readable-stream@1.1.14/duplex.js +2 -0
  272. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_duplex.js +5 -5
  273. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_passthrough.js +3 -3
  274. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_readable.js +10 -10
  275. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_transform.js +4 -4
  276. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/lib/_stream_writable.js +6 -6
  277. data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/package.json +1 -1
  278. data/public/vendor/npm/readable-stream@1.1.14/passthrough.js +2 -0
  279. data/public/vendor/npm/readable-stream@1.1.14/readable.js +13 -0
  280. data/public/vendor/npm/readable-stream@1.1.14/transform.js +2 -0
  281. data/public/vendor/npm/readable-stream@1.1.14/writable.js +2 -0
  282. data/public/vendor/npm/readable-stream@1.1.14.js +1 -0
  283. data/public/vendor/npm/scheduler@0.21.0/LICENSE +21 -0
  284. data/public/vendor/npm/scheduler@0.21.0/README.md +9 -0
  285. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.development.js +530 -0
  286. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_mock.production.min.js +20 -0
  287. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.development.js +153 -0
  288. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler-unstable_post_task.production.min.js +14 -0
  289. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.development.js +444 -0
  290. data/public/vendor/npm/scheduler@0.21.0/cjs/scheduler.production.min.js +19 -0
  291. data/public/vendor/npm/scheduler@0.21.0/index.js +9 -0
  292. data/public/vendor/npm/scheduler@0.21.0/package.json +36 -0
  293. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.development.js +701 -0
  294. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler-unstable_mock.production.min.js +21 -0
  295. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.development.js +154 -0
  296. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.production.min.js +148 -0
  297. data/public/vendor/npm/scheduler@0.21.0/umd/scheduler.profiling.min.js +148 -0
  298. data/public/vendor/npm/scheduler@0.21.0/unstable_mock.js +9 -0
  299. data/public/vendor/npm/scheduler@0.21.0/unstable_post_task.js +9 -0
  300. data/public/vendor/npm/scheduler@0.21.0.js +1 -0
  301. data/public/vendor/npm/stream-browserify@1.0.0/index.js +7 -7
  302. data/public/vendor/npm/stream-browserify@1.0.0/test/buf.js +5 -5
  303. data/public/vendor/npm/stream-browserify@1.0.0.js +1 -1
  304. data/public/vendor/npm/string_decoder@0.10.31/index.js +2 -2
  305. data/public/vendor/npm/string_decoder@0.10.31.js +1 -1
  306. data/public/vendor/npm/util@0.10.3/support/isBuffer.js +1 -1
  307. data/public/vendor/npm/util@0.10.3/test/browser/inspect.js +2 -2
  308. data/public/vendor/npm/util@0.10.3/test/browser/is.js +3 -3
  309. data/public/vendor/npm/util@0.10.3/test/node/debug.js +4 -4
  310. data/public/vendor/npm/util@0.10.3/test/node/format.js +2 -2
  311. data/public/vendor/npm/util@0.10.3/test/node/inspect.js +3 -3
  312. data/public/vendor/npm/util@0.10.3/test/node/log.js +3 -3
  313. data/public/vendor/npm/util@0.10.3/test/node/util.js +3 -3
  314. data/public/vendor/npm/util@0.10.3/util.js +3 -3
  315. data/public/vendor/npm/util@0.10.3.js +1 -1
  316. data/public/vendor/npm/vm-browserify@0.0.4/LICENSE +18 -0
  317. data/public/vendor/npm/vm-browserify@0.0.4/example/run/bundle.js +376 -0
  318. data/public/vendor/npm/vm-browserify@0.0.4/example/run/entry.js +6 -0
  319. data/public/vendor/npm/vm-browserify@0.0.4/example/run/index.html +9 -0
  320. data/public/vendor/npm/vm-browserify@0.0.4/example/run/server.js +6 -0
  321. data/public/vendor/npm/vm-browserify@0.0.4/index.js +139 -0
  322. data/public/vendor/npm/vm-browserify@0.0.4/package.json +46 -0
  323. data/public/vendor/npm/vm-browserify@0.0.4/readme.markdown +67 -0
  324. data/public/vendor/npm/vm-browserify@0.0.4/test/vm.js +34 -0
  325. data/public/vendor/npm/vm-browserify@0.0.4.js +1 -0
  326. data/public/vendor/npm/webshim@1.15.8/Gruntfile.js +4 -4
  327. data/public/vendor/npm/webshim@1.15.8/build/combobuild.js +2 -2
  328. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/color-picker.js +1 -1
  329. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/10.js +1 -1
  330. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/11.js +1 -1
  331. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/17.js +1 -1
  332. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/5.js +1 -1
  333. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/6.js +1 -1
  334. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/combos/9.js +1 -1
  335. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/es6.js +1 -1
  336. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/excanvas.js +1 -1
  337. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/form-number-date-ui.js +1 -1
  338. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-html4.js +1 -1
  339. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/moxie/js/moxie-swf.js +1 -1
  340. data/public/vendor/npm/webshim@1.15.8/js-webshim/dev/shims/sizzle.js +1 -1
  341. data/public/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/es6.js +1 -1
  342. data/public/vendor/npm/webshim@1.15.8/src/shims/color-picker.js +1 -1
  343. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/10.js +1 -1
  344. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/11.js +1 -1
  345. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/17.js +1 -1
  346. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/5.js +1 -1
  347. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/6.js +1 -1
  348. data/public/vendor/npm/webshim@1.15.8/src/shims/combos/9.js +1 -1
  349. data/public/vendor/npm/webshim@1.15.8/src/shims/es6.js +1 -1
  350. data/public/vendor/npm/webshim@1.15.8/src/shims/excanvas.js +1 -1
  351. data/public/vendor/npm/webshim@1.15.8/src/shims/form-number-date-ui.js +1 -1
  352. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-html4.js +1 -1
  353. data/public/vendor/npm/webshim@1.15.8/src/shims/moxie/js/moxie-swf.js +1 -1
  354. data/public/vendor/npm/webshim@1.15.8/src/shims/sizzle.js +1 -1
  355. data/public/vendor/npm/webshim@1.15.8/tests/dist/jquery.js +1 -1
  356. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/core.js +1 -1
  357. data/public/vendor/npm/webshim@1.15.8/tests/jquery/unit/event.js +1388 -711
  358. data/public/vendor/npm/webshim@1.15.8/tests/qunit/qunit.js +1 -1
  359. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-1-custom.js +1 -1
  360. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/jquery-2-custom.js +1 -1
  361. data/public/vendor/npm/webshim@1.15.8/tests/test-ext/punycode.js +1 -1
  362. data/public/vendor/system-csp-production.js +3 -3
  363. data/public/vendor/system-csp-production.js.map +1 -1
  364. data/public/vendor/system-csp-production.src.js +146 -140
  365. data/public/vendor/system-polyfills.js +865 -1
  366. data/public/vendor/system-polyfills.js.map +1 -1
  367. data/public/vendor/system-polyfills.src.js +1 -0
  368. data/public/vendor/system.js +3 -3
  369. data/public/vendor/system.js.map +1 -1
  370. data/public/vendor/system.src.js +4771 -2383
  371. data/views/blastn_options.erb +291 -0
  372. data/views/blastp_options.erb +288 -0
  373. data/views/blastx_options.erb +318 -0
  374. data/views/error.erb +12 -0
  375. data/views/layout.erb +18 -47
  376. data/views/report.erb +0 -8
  377. data/views/search.erb +16 -9
  378. data/views/tblastn_options.erb +266 -0
  379. data/views/tblastx_options.erb +291 -0
  380. metadata +362 -424
  381. data/bin/chromedriver +0 -0
  382. data/bin/geckodriver +0 -0
  383. data/public/shims/form-core.js +0 -3
  384. data/public/shims/form-validation.js +0 -3
  385. data/public/shims/plugins/jquery.ui.position.js +0 -13
  386. data/public/shims/styles/shim.css +0 -1
  387. data/public/vendor/github/jspm/nodelibs-buffer@0.1.0.js +0 -1
  388. data/public/vendor/github/jspm/nodelibs-module@0.1.0/index.js +0 -1
  389. data/public/vendor/github/jspm/nodelibs-module@0.1.0.js +0 -1
  390. data/public/vendor/github/jspm/nodelibs-process@0.1.1.js +0 -1
  391. data/public/vendor/npm/amdefine@1.0.0/LICENSE +0 -58
  392. data/public/vendor/npm/amdefine@1.0.0/README.md +0 -171
  393. data/public/vendor/npm/amdefine@1.0.0/amdefine.js +0 -200
  394. data/public/vendor/npm/amdefine@1.0.0/intercept.js +0 -24
  395. data/public/vendor/npm/amdefine@1.0.0/package.json +0 -16
  396. data/public/vendor/npm/amdefine@1.0.0.js +0 -1
  397. data/public/vendor/npm/base62@0.1.1/LICENSE +0 -20
  398. data/public/vendor/npm/base62@0.1.1/Readme.md +0 -30
  399. data/public/vendor/npm/base62@0.1.1/base62.js +0 -28
  400. data/public/vendor/npm/base62@0.1.1/package.json +0 -21
  401. data/public/vendor/npm/base62@0.1.1/test/test.js +0 -13
  402. data/public/vendor/npm/base62@0.1.1.js +0 -1
  403. data/public/vendor/npm/base64-js@0.0.8/lib/b64.js +0 -125
  404. data/public/vendor/npm/base64-js@0.0.8/package.json +0 -34
  405. data/public/vendor/npm/base64-js@0.0.8/test/convert.js +0 -39
  406. data/public/vendor/npm/base64-js@0.0.8/test/url-safe.js +0 -15
  407. data/public/vendor/npm/base64-js@0.0.8.js +0 -1
  408. data/public/vendor/npm/buffer@3.4.3/index.js +0 -1533
  409. data/public/vendor/npm/buffer@3.4.3/package.json +0 -67
  410. data/public/vendor/npm/buffer@3.4.3/test/_polyfill.js +0 -152
  411. data/public/vendor/npm/buffer@3.4.3/test/base64.js +0 -33
  412. data/public/vendor/npm/buffer@3.4.3/test/basic.js +0 -58
  413. data/public/vendor/npm/buffer@3.4.3/test/compare.js +0 -53
  414. data/public/vendor/npm/buffer@3.4.3/test/constructor.js +0 -132
  415. data/public/vendor/npm/buffer@3.4.3/test/deprecated.js +0 -21
  416. data/public/vendor/npm/buffer@3.4.3/test/from-string.js +0 -105
  417. data/public/vendor/npm/buffer@3.4.3/test/methods.js +0 -109
  418. data/public/vendor/npm/buffer@3.4.3/test/node/README.txt +0 -1
  419. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-ascii.js +0 -20
  420. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-bytelength.js +0 -38
  421. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-concat.js +0 -26
  422. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-indexof.js +0 -78
  423. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer-inspect.js +0 -31
  424. data/public/vendor/npm/buffer@3.4.3/test/node/test-buffer.js +0 -804
  425. data/public/vendor/npm/buffer@3.4.3/test/node-es6/README.txt +0 -1
  426. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-arraybuffer.js +0 -37
  427. data/public/vendor/npm/buffer@3.4.3/test/node-es6/test-buffer-iterator.js +0 -32
  428. data/public/vendor/npm/buffer@3.4.3/test/slice.js +0 -33
  429. data/public/vendor/npm/buffer@3.4.3/test/static.js +0 -32
  430. data/public/vendor/npm/buffer@3.4.3/test/to-string.js +0 -106
  431. data/public/vendor/npm/buffer@3.4.3/test/write.js +0 -90
  432. data/public/vendor/npm/buffer@3.4.3.js +0 -1
  433. data/public/vendor/npm/core-util-is@1.0.1/float.patch +0 -604
  434. data/public/vendor/npm/core-util-is@1.0.1/lib/util.js +0 -66
  435. data/public/vendor/npm/core-util-is@1.0.1/util.js +0 -66
  436. data/public/vendor/npm/core-util-is@1.0.1.js +0 -1
  437. data/public/vendor/npm/envify@3.4.0/README.md +0 -145
  438. data/public/vendor/npm/envify@3.4.0/bin/envify +0 -17
  439. data/public/vendor/npm/envify@3.4.0/custom.js +0 -33
  440. data/public/vendor/npm/envify@3.4.0/index.js +0 -4
  441. data/public/vendor/npm/envify@3.4.0/package.json +0 -35
  442. data/public/vendor/npm/envify@3.4.0/visitors.js +0 -33
  443. data/public/vendor/npm/envify@3.4.0.js +0 -1
  444. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esparse.js +0 -90
  445. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/bin/esvalidate.js +0 -145
  446. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/esprima.js +0 -6191
  447. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/package.json +0 -72
  448. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/compat.js +0 -167
  449. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/reflect.js +0 -421
  450. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/run.js +0 -34
  451. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/runner.js +0 -418
  452. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb/test/test.js +0 -34730
  453. data/public/vendor/npm/esprima-fb@13001.1001.0-dev-harmony-fb.js +0 -1
  454. data/public/vendor/npm/ieee754@1.1.6/LICENSE +0 -56
  455. data/public/vendor/npm/ieee754@1.1.6/package.json +0 -34
  456. data/public/vendor/npm/ieee754@1.1.6/test/basic.js +0 -20
  457. data/public/vendor/npm/ieee754@1.1.6.js +0 -1
  458. data/public/vendor/npm/is-array@1.0.1/History.md +0 -11
  459. data/public/vendor/npm/is-array@1.0.1/Readme.md +0 -27
  460. data/public/vendor/npm/is-array@1.0.1/component.json +0 -13
  461. data/public/vendor/npm/is-array@1.0.1/index.js +0 -33
  462. data/public/vendor/npm/is-array@1.0.1/package.json +0 -10
  463. data/public/vendor/npm/is-array@1.0.1/test/test.html +0 -46
  464. data/public/vendor/npm/is-array@1.0.1.js +0 -1
  465. data/public/vendor/npm/jstransform@10.1.0/LICENSE +0 -201
  466. data/public/vendor/npm/jstransform@10.1.0/README.md +0 -98
  467. data/public/vendor/npm/jstransform@10.1.0/jestEnvironment.js +0 -3
  468. data/public/vendor/npm/jstransform@10.1.0/jestPreprocessor.js +0 -8
  469. data/public/vendor/npm/jstransform@10.1.0/package.json +0 -52
  470. data/public/vendor/npm/jstransform@10.1.0/polyfill/Object.es6.js +0 -54
  471. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-test.js +0 -246
  472. data/public/vendor/npm/jstransform@10.1.0/src/__tests__/jstransform-utils-test.js +0 -31
  473. data/public/vendor/npm/jstransform@10.1.0/src/docblock.js +0 -86
  474. data/public/vendor/npm/jstransform@10.1.0/src/jstransform.js +0 -180
  475. data/public/vendor/npm/jstransform@10.1.0/src/utils.js +0 -386
  476. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-arrow-function-visitors-test.js +0 -57
  477. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-call-spread-visitors-test.js +0 -46
  478. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-class-visitors-test.js +0 -463
  479. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-destructuring-visitors-test.js +0 -144
  480. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-es7-object-integration-test.js +0 -40
  481. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-concise-method-visitors-test.js +0 -47
  482. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-object-short-notation-visitors-test.js +0 -33
  483. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-rest-param-visitors-test.js +0 -119
  484. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es6-template-visitors-test.js +0 -138
  485. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-rest-property-helpers-test.js +0 -47
  486. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/es7-spread-property-visitors-test.js +0 -90
  487. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/generate-type-syntax-test.js +0 -40
  488. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/gen/type-syntax-test.rec.js +0 -846
  489. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/reserved-words-test.js +0 -40
  490. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-alias-syntax-test.js +0 -34
  491. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-class-syntax-test.js +0 -105
  492. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-function-syntax-test.js +0 -126
  493. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-interface-syntax-test.js +0 -29
  494. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-object-method-syntax-test.js +0 -65
  495. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-pattern-syntax-test.js +0 -45
  496. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-syntax-test.js +0 -46
  497. data/public/vendor/npm/jstransform@10.1.0/visitors/__tests__/type-variable-declaration-syntax-test.js +0 -102
  498. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-arrow-function-visitors.js +0 -66
  499. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-call-spread-visitors.js +0 -72
  500. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-class-visitors.js +0 -316
  501. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-destructuring-visitors.js +0 -135
  502. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-concise-method-visitors.js +0 -28
  503. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-object-short-notation-visitors.js +0 -12
  504. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-rest-param-visitors.js +0 -45
  505. data/public/vendor/npm/jstransform@10.1.0/visitors/es6-template-visitors.js +0 -90
  506. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-rest-property-helpers.js +0 -80
  507. data/public/vendor/npm/jstransform@10.1.0/visitors/es7-spread-property-visitors.js +0 -56
  508. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-helper.js +0 -74
  509. data/public/vendor/npm/jstransform@10.1.0/visitors/reserved-words-visitors.js +0 -30
  510. data/public/vendor/npm/jstransform@10.1.0/visitors/type-syntax.js +0 -118
  511. data/public/vendor/npm/jstransform@10.1.0.js +0 -1
  512. data/public/vendor/npm/process@0.10.1/browser.js +0 -58
  513. data/public/vendor/npm/process@0.10.1.js +0 -1
  514. data/public/vendor/npm/qs@2.4.1/test/stringify.js +0 -162
  515. data/public/vendor/npm/react@0.13.3/README.md +0 -20
  516. data/public/vendor/npm/react@0.13.3/addons.js +0 -2
  517. data/public/vendor/npm/react@0.13.3/dist/JSXTransformer.js +0 -11346
  518. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.js +0 -10483
  519. data/public/vendor/npm/react@0.13.3/dist/react-with-addons.min.js +0 -7297
  520. data/public/vendor/npm/react@0.13.3/dist/react.js +0 -9468
  521. data/public/vendor/npm/react@0.13.3/dist/react.min.js +0 -6764
  522. data/public/vendor/npm/react@0.13.3/lib/AutoFocusMixin.js +0 -9
  523. data/public/vendor/npm/react@0.13.3/lib/BeforeInputEventPlugin.js +0 -197
  524. data/public/vendor/npm/react@0.13.3/lib/CSSCore.js +0 -39
  525. data/public/vendor/npm/react@0.13.3/lib/CSSProperty.js +0 -123
  526. data/public/vendor/npm/react@0.13.3/lib/CSSPropertyOperations.js +0 -103
  527. data/public/vendor/npm/react@0.13.3/lib/CallbackQueue.js +0 -43
  528. data/public/vendor/npm/react@0.13.3/lib/ChangeEventPlugin.js +0 -174
  529. data/public/vendor/npm/react@0.13.3/lib/ClientReactRootIndex.js +0 -23
  530. data/public/vendor/npm/react@0.13.3/lib/DOMChildrenOperations.js +0 -57
  531. data/public/vendor/npm/react@0.13.3/lib/DOMProperty.js +0 -96
  532. data/public/vendor/npm/react@0.13.3/lib/DOMPropertyOperations.js +0 -99
  533. data/public/vendor/npm/react@0.13.3/lib/Danger.js +0 -67
  534. data/public/vendor/npm/react@0.13.3/lib/DefaultEventPluginOrder.js +0 -5
  535. data/public/vendor/npm/react@0.13.3/lib/EnterLeaveEventPlugin.js +0 -69
  536. data/public/vendor/npm/react@0.13.3/lib/EventConstants.js +0 -55
  537. data/public/vendor/npm/react@0.13.3/lib/EventListener.js +0 -34
  538. data/public/vendor/npm/react@0.13.3/lib/EventPluginHub.js +0 -103
  539. data/public/vendor/npm/react@0.13.3/lib/EventPluginRegistry.js +0 -115
  540. data/public/vendor/npm/react@0.13.3/lib/EventPluginUtils.js +0 -121
  541. data/public/vendor/npm/react@0.13.3/lib/EventPropagators.js +0 -62
  542. data/public/vendor/npm/react@0.13.3/lib/ExecutionEnvironment.js +0 -42
  543. data/public/vendor/npm/react@0.13.3/lib/FallbackCompositionState.js +0 -45
  544. data/public/vendor/npm/react@0.13.3/lib/HTMLDOMPropertyConfig.js +0 -155
  545. data/public/vendor/npm/react@0.13.3/lib/LinkedStateMixin.js +0 -8
  546. data/public/vendor/npm/react@0.13.3/lib/LinkedValueUtils.js +0 -74
  547. data/public/vendor/npm/react@0.13.3/lib/LocalEventTrapMixin.js +0 -26
  548. data/public/vendor/npm/react@0.13.3/lib/MobileSafariClickEventPlugin.js +0 -17
  549. data/public/vendor/npm/react@0.13.3/lib/Object.assign.js +0 -47
  550. data/public/vendor/npm/react@0.13.3/lib/PooledClass.js +0 -75
  551. data/public/vendor/npm/react@0.13.3/lib/React.js +0 -93
  552. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserComponentMixin.js +0 -7
  553. data/public/vendor/npm/react@0.13.3/lib/ReactBrowserEventEmitter.js +0 -136
  554. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroup.js +0 -34
  555. data/public/vendor/npm/react@0.13.3/lib/ReactCSSTransitionGroupChild.js +0 -92
  556. data/public/vendor/npm/react@0.13.3/lib/ReactChildReconciler.js +0 -57
  557. data/public/vendor/npm/react@0.13.3/lib/ReactChildren.js +0 -67
  558. data/public/vendor/npm/react@0.13.3/lib/ReactClass.js +0 -338
  559. data/public/vendor/npm/react@0.13.3/lib/ReactComponent.js +0 -50
  560. data/public/vendor/npm/react@0.13.3/lib/ReactComponentBrowserEnvironment.js +0 -14
  561. data/public/vendor/npm/react@0.13.3/lib/ReactComponentEnvironment.js +0 -19
  562. data/public/vendor/npm/react@0.13.3/lib/ReactComponentWithPureRenderMixin.js +0 -7
  563. data/public/vendor/npm/react@0.13.3/lib/ReactCompositeComponent.js +0 -374
  564. data/public/vendor/npm/react@0.13.3/lib/ReactContext.js +0 -27
  565. data/public/vendor/npm/react@0.13.3/lib/ReactCurrentOwner.js +0 -32
  566. data/public/vendor/npm/react@0.13.3/lib/ReactDOM.js +0 -146
  567. data/public/vendor/npm/react@0.13.3/lib/ReactDOMButton.js +0 -35
  568. data/public/vendor/npm/react@0.13.3/lib/ReactDOMComponent.js +0 -267
  569. data/public/vendor/npm/react@0.13.3/lib/ReactDOMForm.js +0 -21
  570. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIDOperations.js +0 -63
  571. data/public/vendor/npm/react@0.13.3/lib/ReactDOMIframe.js +0 -20
  572. data/public/vendor/npm/react@0.13.3/lib/ReactDOMImg.js +0 -21
  573. data/public/vendor/npm/react@0.13.3/lib/ReactDOMInput.js +0 -94
  574. data/public/vendor/npm/react@0.13.3/lib/ReactDOMOption.js +0 -23
  575. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelect.js +0 -112
  576. data/public/vendor/npm/react@0.13.3/lib/ReactDOMSelection.js +0 -103
  577. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextComponent.js +0 -38
  578. data/public/vendor/npm/react@0.13.3/lib/ReactDOMTextarea.js +0 -70
  579. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultBatchingStrategy.js +0 -37
  580. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultInjection.js +0 -93
  581. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerf.js +0 -183
  582. data/public/vendor/npm/react@0.13.3/lib/ReactDefaultPerfAnalysis.js +0 -145
  583. data/public/vendor/npm/react@0.13.3/lib/ReactElement.js +0 -151
  584. data/public/vendor/npm/react@0.13.3/lib/ReactElementValidator.js +0 -218
  585. data/public/vendor/npm/react@0.13.3/lib/ReactEmptyComponent.js +0 -47
  586. data/public/vendor/npm/react@0.13.3/lib/ReactErrorUtils.js +0 -30
  587. data/public/vendor/npm/react@0.13.3/lib/ReactEventEmitterMixin.js +0 -12
  588. data/public/vendor/npm/react@0.13.3/lib/ReactEventListener.js +0 -93
  589. data/public/vendor/npm/react@0.13.3/lib/ReactFragment.js +0 -110
  590. data/public/vendor/npm/react@0.13.3/lib/ReactInjection.js +0 -27
  591. data/public/vendor/npm/react@0.13.3/lib/ReactInputSelection.js +0 -75
  592. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceHandles.js +0 -113
  593. data/public/vendor/npm/react@0.13.3/lib/ReactInstanceMap.js +0 -47
  594. data/public/vendor/npm/react@0.13.3/lib/ReactLifeCycle.js +0 -9
  595. data/public/vendor/npm/react@0.13.3/lib/ReactLink.js +0 -16
  596. data/public/vendor/npm/react@0.13.3/lib/ReactMarkupChecksum.js +0 -17
  597. data/public/vendor/npm/react@0.13.3/lib/ReactMount.js +0 -347
  598. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChild.js +0 -190
  599. data/public/vendor/npm/react@0.13.3/lib/ReactMultiChildUpdateTypes.js +0 -10
  600. data/public/vendor/npm/react@0.13.3/lib/ReactNativeComponent.js +0 -53
  601. data/public/vendor/npm/react@0.13.3/lib/ReactOwner.js +0 -21
  602. data/public/vendor/npm/react@0.13.3/lib/ReactPerf.js +0 -42
  603. data/public/vendor/npm/react@0.13.3/lib/ReactPropTransferer.js +0 -40
  604. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocationNames.js +0 -13
  605. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypeLocations.js +0 -9
  606. data/public/vendor/npm/react@0.13.3/lib/ReactPropTypes.js +0 -225
  607. data/public/vendor/npm/react@0.13.3/lib/ReactPutListenerQueue.js +0 -31
  608. data/public/vendor/npm/react@0.13.3/lib/ReactReconcileTransaction.js +0 -66
  609. data/public/vendor/npm/react@0.13.3/lib/ReactReconciler.js +0 -44
  610. data/public/vendor/npm/react@0.13.3/lib/ReactRef.js +0 -36
  611. data/public/vendor/npm/react@0.13.3/lib/ReactRootIndex.js +0 -29
  612. data/public/vendor/npm/react@0.13.3/lib/ReactServerRendering.js +0 -44
  613. data/public/vendor/npm/react@0.13.3/lib/ReactServerRenderingTransaction.js +0 -47
  614. data/public/vendor/npm/react@0.13.3/lib/ReactStateSetters.js +0 -104
  615. data/public/vendor/npm/react@0.13.3/lib/ReactTestUtils.js +0 -249
  616. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionChildMapping.js +0 -53
  617. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionEvents.js +0 -68
  618. data/public/vendor/npm/react@0.13.3/lib/ReactTransitionGroup.js +0 -140
  619. data/public/vendor/npm/react@0.13.3/lib/ReactUpdateQueue.js +0 -107
  620. data/public/vendor/npm/react@0.13.3/lib/ReactUpdates.js +0 -139
  621. data/public/vendor/npm/react@0.13.3/lib/ReactWithAddons.js +0 -30
  622. data/public/vendor/npm/react@0.13.3/lib/SVGDOMPropertyConfig.js +0 -76
  623. data/public/vendor/npm/react@0.13.3/lib/SelectEventPlugin.js +0 -91
  624. data/public/vendor/npm/react@0.13.3/lib/ServerReactRootIndex.js +0 -29
  625. data/public/vendor/npm/react@0.13.3/lib/SimpleEventPlugin.js +0 -287
  626. data/public/vendor/npm/react@0.13.3/lib/SyntheticClipboardEvent.js +0 -11
  627. data/public/vendor/npm/react@0.13.3/lib/SyntheticCompositionEvent.js +0 -9
  628. data/public/vendor/npm/react@0.13.3/lib/SyntheticDragEvent.js +0 -9
  629. data/public/vendor/npm/react@0.13.3/lib/SyntheticEvent.js +0 -90
  630. data/public/vendor/npm/react@0.13.3/lib/SyntheticFocusEvent.js +0 -9
  631. data/public/vendor/npm/react@0.13.3/lib/SyntheticInputEvent.js +0 -9
  632. data/public/vendor/npm/react@0.13.3/lib/SyntheticKeyboardEvent.js +0 -43
  633. data/public/vendor/npm/react@0.13.3/lib/SyntheticMouseEvent.js +0 -38
  634. data/public/vendor/npm/react@0.13.3/lib/SyntheticTouchEvent.js +0 -19
  635. data/public/vendor/npm/react@0.13.3/lib/SyntheticUIEvent.js +0 -29
  636. data/public/vendor/npm/react@0.13.3/lib/SyntheticWheelEvent.js +0 -18
  637. data/public/vendor/npm/react@0.13.3/lib/Transaction.js +0 -90
  638. data/public/vendor/npm/react@0.13.3/lib/ViewportMetrics.js +0 -27
  639. data/public/vendor/npm/react@0.13.3/lib/accumulateInto.js +0 -26
  640. data/public/vendor/npm/react@0.13.3/lib/adler32.js +0 -32
  641. data/public/vendor/npm/react@0.13.3/lib/camelize.js +0 -30
  642. data/public/vendor/npm/react@0.13.3/lib/camelizeStyleName.js +0 -8
  643. data/public/vendor/npm/react@0.13.3/lib/cloneWithProps.js +0 -20
  644. data/public/vendor/npm/react@0.13.3/lib/containsNode.js +0 -20
  645. data/public/vendor/npm/react@0.13.3/lib/createArrayFromMixed.js +0 -15
  646. data/public/vendor/npm/react@0.13.3/lib/createFullPageComponent.js +0 -22
  647. data/public/vendor/npm/react@0.13.3/lib/createNodesFromMarkup.js +0 -39
  648. data/public/vendor/npm/react@0.13.3/lib/cx.js +0 -20
  649. data/public/vendor/npm/react@0.13.3/lib/dangerousStyleValue.js +0 -19
  650. data/public/vendor/npm/react@0.13.3/lib/emptyFunction.js +0 -32
  651. data/public/vendor/npm/react@0.13.3/lib/emptyObject.js +0 -9
  652. data/public/vendor/npm/react@0.13.3/lib/escapeTextContentForBrowser.js +0 -38
  653. data/public/vendor/npm/react@0.13.3/lib/findDOMNode.js +0 -31
  654. data/public/vendor/npm/react@0.13.3/lib/flattenChildren.js +0 -25
  655. data/public/vendor/npm/react@0.13.3/lib/focusNode.js +0 -27
  656. data/public/vendor/npm/react@0.13.3/lib/forEachAccumulated.js +0 -29
  657. data/public/vendor/npm/react@0.13.3/lib/getActiveElement.js +0 -27
  658. data/public/vendor/npm/react@0.13.3/lib/getEventCharCode.js +0 -50
  659. data/public/vendor/npm/react@0.13.3/lib/getEventKey.js +0 -72
  660. data/public/vendor/npm/react@0.13.3/lib/getEventModifierState.js +0 -45
  661. data/public/vendor/npm/react@0.13.3/lib/getEventTarget.js +0 -29
  662. data/public/vendor/npm/react@0.13.3/lib/getIteratorFn.js +0 -42
  663. data/public/vendor/npm/react@0.13.3/lib/getMarkupWrap.js +0 -73
  664. data/public/vendor/npm/react@0.13.3/lib/getNodeForCharacterOffset.js +0 -73
  665. data/public/vendor/npm/react@0.13.3/lib/getReactRootElementInContainer.js +0 -33
  666. data/public/vendor/npm/react@0.13.3/lib/getTextContentAccessor.js +0 -11
  667. data/public/vendor/npm/react@0.13.3/lib/getUnboundedScrollPosition.js +0 -38
  668. data/public/vendor/npm/react@0.13.3/lib/hyphenate.js +0 -31
  669. data/public/vendor/npm/react@0.13.3/lib/hyphenateStyleName.js +0 -8
  670. data/public/vendor/npm/react@0.13.3/lib/instantiateReactComponent.js +0 -55
  671. data/public/vendor/npm/react@0.13.3/lib/invariant.js +0 -26
  672. data/public/vendor/npm/react@0.13.3/lib/isEventSupported.js +0 -24
  673. data/public/vendor/npm/react@0.13.3/lib/isNode.js +0 -25
  674. data/public/vendor/npm/react@0.13.3/lib/isTextInputElement.js +0 -41
  675. data/public/vendor/npm/react@0.13.3/lib/isTextNode.js +0 -6
  676. data/public/vendor/npm/react@0.13.3/lib/joinClasses.js +0 -39
  677. data/public/vendor/npm/react@0.13.3/lib/keyMirror.js +0 -18
  678. data/public/vendor/npm/react@0.13.3/lib/keyOf.js +0 -34
  679. data/public/vendor/npm/react@0.13.3/lib/mapObject.js +0 -51
  680. data/public/vendor/npm/react@0.13.3/lib/memoizeStringOnly.js +0 -31
  681. data/public/vendor/npm/react@0.13.3/lib/onlyChild.js +0 -11
  682. data/public/vendor/npm/react@0.13.3/lib/performance.js +0 -8
  683. data/public/vendor/npm/react@0.13.3/lib/performanceNow.js +0 -7
  684. data/public/vendor/npm/react@0.13.3/lib/quoteAttributeValueForBrowser.js +0 -7
  685. data/public/vendor/npm/react@0.13.3/lib/setInnerHTML.js +0 -40
  686. data/public/vendor/npm/react@0.13.3/lib/setTextContent.js +0 -16
  687. data/public/vendor/npm/react@0.13.3/lib/shallowEqual.js +0 -42
  688. data/public/vendor/npm/react@0.13.3/lib/shouldUpdateReactComponent.js +0 -51
  689. data/public/vendor/npm/react@0.13.3/lib/toArray.js +0 -21
  690. data/public/vendor/npm/react@0.13.3/lib/traverseAllChildren.js +0 -104
  691. data/public/vendor/npm/react@0.13.3/lib/update.js +0 -78
  692. data/public/vendor/npm/react@0.13.3/lib/warning.js +0 -34
  693. data/public/vendor/npm/react@0.13.3/package.json +0 -34
  694. data/public/vendor/npm/react@0.13.3/react.js +0 -2
  695. data/public/vendor/npm/react@0.13.3.js +0 -1
  696. data/public/vendor/npm/readable-stream@1.1.13/duplex.js +0 -2
  697. data/public/vendor/npm/readable-stream@1.1.13/passthrough.js +0 -2
  698. data/public/vendor/npm/readable-stream@1.1.13/readable.js +0 -8
  699. data/public/vendor/npm/readable-stream@1.1.13/transform.js +0 -2
  700. data/public/vendor/npm/readable-stream@1.1.13/writable.js +0 -2
  701. data/public/vendor/npm/readable-stream@1.1.13.js +0 -1
  702. data/public/vendor/npm/source-map@0.1.31/CHANGELOG.md +0 -112
  703. data/public/vendor/npm/source-map@0.1.31/LICENSE +0 -28
  704. data/public/vendor/npm/source-map@0.1.31/Makefile.dryice.js +0 -89
  705. data/public/vendor/npm/source-map@0.1.31/README.md +0 -434
  706. data/public/vendor/npm/source-map@0.1.31/build/assert-shim.js +0 -58
  707. data/public/vendor/npm/source-map@0.1.31/build/mini-require.js +0 -154
  708. data/public/vendor/npm/source-map@0.1.31/build/prefix-source-map.jsm +0 -20
  709. data/public/vendor/npm/source-map@0.1.31/build/prefix-utils.jsm +0 -18
  710. data/public/vendor/npm/source-map@0.1.31/build/suffix-browser.js +0 -8
  711. data/public/vendor/npm/source-map@0.1.31/build/suffix-source-map.jsm +0 -6
  712. data/public/vendor/npm/source-map@0.1.31/build/suffix-utils.jsm +0 -21
  713. data/public/vendor/npm/source-map@0.1.31/build/test-prefix.js +0 -10
  714. data/public/vendor/npm/source-map@0.1.31/build/test-suffix.js +0 -5
  715. data/public/vendor/npm/source-map@0.1.31/lib/source-map/array-set.js +0 -49
  716. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64-vlq.js +0 -56
  717. data/public/vendor/npm/source-map@0.1.31/lib/source-map/base64.js +0 -44
  718. data/public/vendor/npm/source-map@0.1.31/lib/source-map/binary-search.js +0 -83
  719. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-consumer.js +0 -238
  720. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-map-generator.js +0 -231
  721. data/public/vendor/npm/source-map@0.1.31/lib/source-map/source-node.js +0 -234
  722. data/public/vendor/npm/source-map@0.1.31/lib/source-map/util.js +0 -207
  723. data/public/vendor/npm/source-map@0.1.31/lib/source-map.js +0 -4
  724. data/public/vendor/npm/source-map@0.1.31/package.json +0 -52
  725. data/public/vendor/npm/source-map@0.1.31/test/run-tests.js +0 -50
  726. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-api.js +0 -19
  727. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-array-set.js +0 -84
  728. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64-vlq.js +0 -17
  729. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-base64.js +0 -26
  730. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-binary-search.js +0 -37
  731. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-dog-fooding.js +0 -76
  732. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-consumer.js +0 -426
  733. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-map-generator.js +0 -480
  734. data/public/vendor/npm/source-map@0.1.31/test/source-map/test-source-node.js +0 -307
  735. data/public/vendor/npm/source-map@0.1.31/test/source-map/util.js +0 -84
  736. data/public/vendor/npm/source-map@0.1.31.js +0 -1
  737. data/public/vendor/npm/through@2.3.8/LICENSE.APACHE2 +0 -15
  738. data/public/vendor/npm/through@2.3.8/LICENSE.MIT +0 -24
  739. data/public/vendor/npm/through@2.3.8/index.js +0 -93
  740. data/public/vendor/npm/through@2.3.8/package.json +0 -36
  741. data/public/vendor/npm/through@2.3.8/readme.markdown +0 -64
  742. data/public/vendor/npm/through@2.3.8/test/async.js +0 -26
  743. data/public/vendor/npm/through@2.3.8/test/auto-destroy.js +0 -26
  744. data/public/vendor/npm/through@2.3.8/test/buffering.js +0 -57
  745. data/public/vendor/npm/through@2.3.8/test/end.js +0 -37
  746. data/public/vendor/npm/through@2.3.8/test/index.js +0 -98
  747. data/public/vendor/npm/through@2.3.8/test.js +0 -2
  748. data/public/vendor/npm/through@2.3.8.js +0 -1
  749. data/views/_options.erb +0 -135
  750. /data/public/vendor/github/jspm/{nodelibs-buffer@0.1.0 → nodelibs-buffer@0.1.1}/index.js +0 -0
  751. /data/public/vendor/github/jspm/{nodelibs-process@0.1.1 → nodelibs-process@0.1.2}/index.js +0 -0
  752. /data/public/vendor/npm/{readable-stream@1.1.13 → assert@1.5.0}/LICENSE +0 -0
  753. /data/public/vendor/npm/{buffer@3.4.3 → buffer@5.7.1}/LICENSE +0 -0
  754. /data/public/vendor/npm/{core-util-is@1.0.1 → core-util-is@1.0.3}/README.md +0 -0
  755. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/LICENSE +0 -0
  756. /data/public/vendor/npm/{process@0.10.1 → process@0.11.10}/index.js +0 -0
  757. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/README.md +0 -0
  758. /data/public/vendor/npm/{readable-stream@1.1.13 → readable-stream@1.1.14}/float.patch +0 -0
data/public/js/search.js CHANGED
@@ -1,1002 +1,38 @@
1
- import './jquery_world';
2
- import React from 'react';
3
- import _ from 'underscore';
4
-
1
+ import "./jquery_world";
2
+ import React, { Component } from "react";
3
+ import { createRoot } from "react-dom/client";
4
+ import { DnD } from "./dnd";
5
+ import { Form } from "./form";
5
6
  /**
6
7
  * Load necessary polyfills.
7
8
  */
8
- $.webshims.polyfill('forms');
9
+ $.webshims.setOptions(
10
+ "basePath",
11
+ "/vendor/npm/webshim@1.15.8/js-webshim/minified/shims/"
12
+ );
13
+ $.webshims.polyfill("forms");
9
14
 
10
15
  /**
11
16
  * Clear sessionStorage on reload.
12
- */
17
+ */
13
18
  if (performance.navigation.type == performance.navigation.TYPE_RELOAD) {
14
- sessionStorage.clear();
15
- history.replaceState(null, '', location.href.split('?')[0]);
19
+ sessionStorage.clear();
20
+ history.replaceState(null, "", location.href.split("?")[0]);
16
21
  }
17
22
 
18
- var Page = React.createClass({
19
- render: function () {
20
- return (
21
- <div>
22
- <DnD ref="dnd"/>
23
- <Form ref="form"/>
24
- </div>
25
- );
26
- },
27
-
28
- componentDidMount: function () {
29
- this.refs.dnd.setState({
30
- query: this.refs.form.refs.query
31
- });
32
- }
33
- });
34
-
35
- /** Drag n drop widget.
36
- */
37
- var DnD = React.createClass({
38
-
39
- getInitialState: function () {
40
- return {
41
- query: null
42
- };
43
- },
44
-
45
- render: function () {
46
- return (
47
- <div
48
- className="dnd-overlay"
49
- style={{display: 'none'}}>
50
- <div
51
- className="container dnd-overlay-container">
52
- <div
53
- className="row">
54
- <div
55
- className="col-md-offset-2 col-md-10">
56
- <p
57
- className="dnd-overlay-drop"
58
- style={{display: 'none'}}>
59
- <i className="fa fa-2x fa-file-o"></i>
60
- Drop query sequence file here
61
- </p>
62
- <p
63
- className="dnd-overlay-overwrite"
64
- style={{display: 'none'}}>
65
- <i className="fa fa-2x fa-file-o"></i>
66
- <span style={{color: 'red'}}>Overwrite</span> query sequence file
67
- </p>
68
-
69
- <div
70
- className="dnd-errors">
71
- <div
72
- className="dnd-error row"
73
- id="dnd-multi-notification"
74
- style={{display: 'none'}}>
75
- <div
76
- className="col-md-6 col-md-offset-3">
77
- One file at a time please.
78
- </div>
79
- </div>
80
-
81
- <div
82
- className="dnd-error row"
83
- id="dnd-large-file-notification"
84
- style={{display: 'none'}}>
85
- <div
86
- className="col-md-6 col-md-offset-3">
87
- Too big a file. Can only do less than 10 MB. &gt;_&lt;
88
- </div>
89
- </div>
90
-
91
- <div
92
- className="dnd-error row"
93
- id="dnd-format-notification"
94
- style={{display: 'none'}}>
95
- <div
96
- className="col-md-6 col-md-offset-3">
97
- Only FASTA files please.
98
- </div>
99
- </div>
100
- </div>
101
- </div>
102
- </div>
103
- </div>
104
- </div>
105
- );
106
- },
107
-
108
- componentDidMount: function () {
109
- var self = this;
110
- var FASTA_FORMAT = /^>/;
111
-
112
- $(document).ready(function(){
113
- var tgtMarker = $('.dnd-overlay');
114
-
115
- var dndError = function (id) {
116
- $('.dnd-error').hide();
117
- $('#' + id + '-notification').show();
118
- tgtMarker.effect('fade', 2500);
119
- };
120
-
121
- $(document)
122
- .on('dragenter', function (evt) {
123
- // Do not activate DnD if a modal is active.
124
- if ($.modalActive()) return;
125
-
126
- // Based on http://stackoverflow.com/a/8494918/1205465.
127
- // Contrary to what the above link says, the snippet below can't
128
- // distinguish directories from files. We handle that on drop.
129
- var dt = evt.originalEvent.dataTransfer;
130
- var isFile = dt.types && ((dt.types.indexOf && // Chrome and Safari
131
- dt.types.indexOf('Files') != -1) ||
132
- (dt.types.contains && // Firefox
133
- dt.types.contains('application/x-moz-file')));
134
-
135
- if (!isFile) { return; }
136
-
137
- $('.dnd-error').hide();
138
- tgtMarker.stop(true, true);
139
- tgtMarker.show();
140
- dt.effectAllowed = 'copy';
141
- if (self.state.query.isEmpty()) {
142
- $('.dnd-overlay-overwrite').hide();
143
- $('.dnd-overlay-drop').show('drop', {direction: 'down'}, 'fast');
144
- }
145
- else {
146
- $('.dnd-overlay-drop').hide();
147
- $('.dnd-overlay-overwrite').show('drop', {direction: 'down'}, 'fast');
148
- }
149
- })
150
- .on('dragleave', '.dnd-overlay', function (evt) {
151
- tgtMarker.hide();
152
- $('.dnd-overlay-drop').hide();
153
- $('.dnd-overlay-overwrite').hide();
154
- })
155
- .on('dragover', '.dnd-overlay', function (evt) {
156
- evt.originalEvent.dataTransfer.dropEffect = 'copy';
157
- evt.preventDefault();
158
- })
159
- .on('drop', '.dnd-overlay', function (evt) {
160
- evt.preventDefault();
161
- evt.stopPropagation();
162
-
163
- var indicator = $('#sequence-file');
164
- self.state.query.focus();
165
-
166
- var files = evt.originalEvent.dataTransfer.files;
167
- if (files.length > 1) {
168
- dndError('dnd-multi');
169
- return;
170
- }
171
-
172
- var file = files[0];
173
- if (file.size > 10 * 1048576) {
174
- dndError('dnd-large-file');
175
- return;
176
- }
177
-
178
- var reader = new FileReader();
179
- reader.onload = function (e) {
180
- var content = e.target.result;
181
- if (FASTA_FORMAT.test(content)) {
182
- indicator.text(file.name + ' ');
183
- self.state.query.value(content);
184
- tgtMarker.hide();
185
- } else {
186
- // apparently not FASTA
187
- dndError('dnd-format');
188
- }
189
- };
190
- reader.onerror = function (e) {
191
- // Couldn't read. Means dropped stuff wasn't FASTA file.
192
- dndError('dnd-format');
193
- };
194
- reader.readAsText(file);
195
- });
196
- });
197
- }
198
- });
199
-
200
- /**
201
- * Search form.
202
- *
203
- * Top level component that initialises and holds all other components, and
204
- * facilitates communication between them.
205
- */
206
- var Form = React.createClass({
207
-
208
- getInitialState: function () {
209
- return { databases: {}, preDefinedOpts: {} };
210
- },
211
-
212
- componentDidMount: function () {
213
- /* Fetch data to initialise the search interface from the server. These
214
- * include list of databases to search against, advanced options to
215
- * apply when an algorithm is selected, and a query sequence that
216
- * the user may want to search in the databases.
217
- */
218
- var search = location.search.split(/\?|&/).filter(Boolean);
219
- var job_id = sessionStorage.getItem('job_id');
220
- if (job_id) {
221
- search.unshift(`job_id=${job_id}`);
222
- }
223
- $.getJSON(`searchdata.json?${search.join('&')}`, function(data) {
224
- /* Update form state (i.e., list of databases and predefined
225
- * advanced options.
226
- */
227
- this.setState({
228
- databases: data['database'],
229
- preSelectedDbs: data['preSelectedDbs'],
230
- preDefinedOpts: data['options']
231
- });
232
-
233
- /* Pre-populate the form with server sent query sequences
234
- * (if any).
235
- */
236
- if (data['query']) {
237
- this.refs.query.value(data['query']);
238
- }
239
- }.bind(this));
240
-
241
- /* Enable submitting form on Cmd+Enter */
242
- $(document).on('keydown', (e)=> {
243
- var $button = $('#method');
244
- if (!$button.is(':disabled') &&
245
- e.ctrlKey && e.key === 'Enter') {
246
- $button.trigger('click');
247
- }
248
- });
249
- },
250
-
251
- determineBlastMethod: function () {
252
- var database_type = this.databaseType;
253
- var sequence_type = this.sequenceType;
254
-
255
- if (this.refs.query.isEmpty()) {
256
- return [];
257
- }
258
-
259
- //database type is always known
260
- switch (database_type) {
261
- case 'protein':
262
- switch (sequence_type) {
263
- case undefined:
264
- return ['blastp', 'blastx'];
265
- case 'protein':
266
- return ['blastp'];
267
- case 'nucleotide':
268
- return ['blastx'];
269
- }
270
- break;
271
- case 'nucleotide':
272
- switch (sequence_type) {
273
- case undefined:
274
- return ['tblastn', 'blastn', 'tblastx'];
275
- case 'protein':
276
- return ['tblastn'];
277
- case 'nucleotide':
278
- return ['blastn', 'tblastx'];
279
- }
280
- break;
281
- }
282
-
283
- return [];
284
- },
285
-
286
- handleSequenceTypeChanged: function (type) {
287
- this.sequenceType = type;
288
- this.refs.button.setState({
289
- hasQuery: !this.refs.query.isEmpty(),
290
- hasDatabases: !!this.databaseType,
291
- methods: this.determineBlastMethod()
292
- });
293
- },
294
-
295
- handleDatabaseTypeChanaged: function (type) {
296
- this.databaseType = type;
297
- this.refs.button.setState({
298
- hasQuery: !this.refs.query.isEmpty(),
299
- hasDatabases: !!this.databaseType,
300
- methods: this.determineBlastMethod()
301
- });
302
- },
303
-
304
- handleAlgoChanged: function (algo) {
305
- if (this.state.preDefinedOpts.hasOwnProperty(algo)) {
306
- this.refs.opts.setState({
307
- preOpts: this.state.preDefinedOpts[algo].join(' ')
308
- });
309
- }
310
- else {
311
- this.refs.opts.setState({preOpts: ''});
312
- }
313
- },
314
-
315
- handleNewTabCheckbox: function () {
316
- setTimeout(() => {
317
- if ($('#toggleNewTab').is(':checked')) {
318
- $('#blast').attr('target', '_blank');
319
- }
320
- else {
321
- $('#blast').attr('target', '_self');
322
- }
323
- });
324
- },
325
-
326
- render: function () {
327
- return (
328
- <div className="container">
329
- <form id="blast" method="post" className="form-horizontal">
330
- <div className="form-group query-container">
331
- <Query ref="query" onSequenceTypeChanged={this.handleSequenceTypeChanged}/>
332
- </div>
333
- <div className="notifications" id="notifications">
334
- <NucleotideNotification/>
335
- <ProteinNotification/>
336
- <MixedNotification/>
337
- </div>
338
- <Databases ref="databases" databases={this.state.databases}
339
- preSelectedDbs={this.state.preSelectedDbs}
340
- onDatabaseTypeChanged={this.handleDatabaseTypeChanaged} />
341
- <div className="form-group">
342
- <Options ref="opts"/>
343
- <div className="col-md-2">
344
- <div className="form-group" style={{'textAlign': 'center', 'padding': '7px 0'}}>
345
- <label>
346
- <input type="checkbox" id="toggleNewTab"
347
- onChange={()=> { this.handleNewTabCheckbox(); }}
348
- /> Open results in new tab
349
- </label>
350
- </div>
351
- </div>
352
- <SearchButton ref="button" onAlgoChanged={this.handleAlgoChanged}/>
353
- </div>
354
- </form>
355
- </div>
356
- );
357
- }
358
- });
359
-
360
- /**
361
- * Query widget.
362
- */
363
- var Query = React.createClass({
364
-
365
- // Kind of public API. //
366
-
367
- /**
368
- * Returns query sequence if no argument is provided (or null or undefined
369
- * is provided as argument). Otherwise, sets query sequenced to the given
370
- * value and returns `this`.
371
- *
372
- * Default/initial state of query sequence is an empty string. Caller must
373
- * explicitly provide empty string as argument to "reset" query sequence.
374
- */
375
- value: function (val) {
376
- if (val == null) {
377
- // i.e., val is null or undefined
378
- return this.state.value;
379
- }
380
- else {
381
- this.setState({
382
- value: val
383
- });
384
- return this;
385
- }
386
- },
387
-
388
- /**
389
- * Clears textarea. Returns `this`.
390
- *
391
- * Clearing textarea also causes it to be focussed.
392
- */
393
- clear: function () {
394
- return this.value('').focus();
395
- },
396
-
397
- /**
398
- * Focuses textarea. Returns `this`.
399
- */
400
- focus: function () {
401
- this.textarea().focus();
402
- return this;
403
- },
404
-
405
- /**
406
- * Returns true if query is absent ('', undefined, null), false otherwise.
407
- */
408
- isEmpty: function () {
409
- return !this.value();
410
- },
411
-
412
-
413
- // Internal helpers. //
414
-
415
- textarea: function () {
416
- return $(this.refs.textarea.getDOMNode());
417
- },
418
-
419
- controls: function () {
420
- return $(this.refs.controls.getDOMNode());
421
- },
422
-
423
- handleInput: function (evt) {
424
- this.value(evt.target.value);
425
- },
426
-
427
- /**
428
- * Hides or shows 'clear sequence' button.
429
- *
430
- * Rendering the 'clear sequence' button takes into account presence or
431
- * absence of a scrollbar.
432
- *
433
- * Called by `componentDidUpdate`.
434
- */
435
- hideShowButton: function () {
436
- if (!this.isEmpty()) {
437
- // Calculation below is based on -
438
- // http://chris-spittles.co.uk/jquery-calculate-scrollbar-width/
439
- // FIXME: can reflow be avoided here?
440
- var textareaNode = this.textarea()[0];
441
- var sequenceControlsRight = textareaNode.offsetWidth - textareaNode.clientWidth;
442
- this.controls().css('right', sequenceControlsRight + 17);
443
- this.controls().removeClass('hidden');
444
- }
445
- else {
446
- // FIXME: what are lines 1, 2, & 3 doing here?
447
- this.textarea().parent().removeClass('has-error');
448
- this.$sequenceFile = $('#sequence-file');
449
- this.$sequenceFile.empty();
450
-
451
- this.controls().addClass('hidden');
452
- }
453
- },
454
-
455
- /**
456
- * Put red border around textarea.
457
- */
458
- indicateError: function () {
459
- this.textarea().parent().addClass('has-error');
460
- },
461
-
462
- /**
463
- * Put normal blue border around textarea.
464
- */
465
- indicateNormal: function () {
466
- this.textarea().parent().removeClass('has-error');
467
- },
468
-
469
- /**
470
- * Returns type of the query sequence (nucleotide, protein, mixed).
471
- *
472
- * Query widget supports executing a callback when the query type changes.
473
- * Components interested in query type should register a callback instead
474
- * of directly calling this method.
475
- */
476
- type: function () {
477
- var sequences = this.value().split(/>.*/);
478
-
479
- var type, tmp;
480
-
481
- for (var i = 0; i < sequences.length; i++) {
482
- tmp = this.guessSequenceType(sequences[i]);
483
-
484
- // could not guess the sequence type; try the next sequence
485
- if (!tmp) { continue; }
486
-
487
- if (!type) {
488
- // successfully guessed the type of atleast one sequence
489
- type = tmp;
490
- }
491
- else if (tmp !== type) {
492
- // user has mixed different type of sequences
493
- return 'mixed';
494
- }
495
- }
496
-
497
- return type;
498
- },
499
-
500
- /**
501
- * Guesses and returns the type of the given sequence (nucleotide,
502
- * protein).
503
- */
504
- guessSequenceType: function (sequence) {
505
- // remove 'noisy' characters
506
- sequence = sequence.replace(/[^A-Z]/gi, ''); // non-letter characters
507
- sequence = sequence.replace(/[NX]/gi, ''); // ambiguous characters
508
-
509
- // can't determine the type of ultrashort queries
510
- if (sequence.length < 10) {
511
- return undefined;
512
- }
513
-
514
- // count the number of putative NA
515
- var putative_NA_count = 0;
516
- for (var i = 0; i < sequence.length; i++) {
517
- if (sequence[i].match(/[ACGTU]/i)) {
518
- putative_NA_count += 1;
519
- }
520
- }
521
-
522
- var threshold = 0.9 * sequence.length;
523
- return putative_NA_count > threshold ? 'nucleotide' : 'protein';
524
- },
525
-
526
- notify: function (type) {
527
- clearTimeout(this.notification_timeout);
528
- this.indicateNormal();
529
- $('.notifications .active').hide().removeClass('active');
530
-
531
- if (type) {
532
- $('#' + type + '-sequence-notification').show('drop', {direction: 'up'}).addClass('active');
533
-
534
- this.notification_timeout = setTimeout(function () {
535
- $('.notifications .active').hide('drop', {direction: 'up'}).removeClass('active');
536
- }, 5000);
537
-
538
- if (type === 'mixed') {
539
- this.indicateError();
540
- }
541
- }
542
- },
543
-
544
-
545
- // Lifecycle methods. //
546
-
547
- getInitialState: function () {
548
- var input_sequence = $('input#input_sequence').val() || '';
549
- return {
550
- value: input_sequence
551
- };
552
- },
553
-
554
- render: function ()
555
- {
556
- return (
557
- <div
558
- className="col-md-12">
559
- <div
560
- className="sequence">
561
- <textarea
562
- id="sequence" ref="textarea"
563
- className="form-control text-monospace"
564
- name="sequence" value={this.state.value}
565
- placeholder="Paste query sequence(s) or drag file
566
- containing query sequence(s) in FASTA format here ..."
567
- spellCheck="false" autoFocus="true"
568
- onChange={this.handleInput}>
569
- </textarea>
570
- </div>
571
- <div
572
- className="hidden"
573
- style={{ position: 'absolute', top: '4px', right: '19px' }}
574
- ref="controls">
575
- <button
576
- type="button"
577
- className="btn btn-sm btn-default" id="btn-sequence-clear"
578
- title="Clear query sequence(s)."
579
- onClick={this.clear}>
580
- <span id="sequence-file"></span>
581
- <i className="fa fa-times"></i>
582
- </button>
583
- </div>
584
- </div>
585
- );
586
- },
587
-
588
- componentDidMount: function () {
589
- $('body').click(function () {
590
- $('.notifications .active').hide('drop', {direction: 'up'}).removeClass('active');
591
- });
592
- },
593
-
594
- componentDidUpdate: function () {
595
- this.hideShowButton();
596
- var type = this.type();
597
- if (!type || type !== this._type) {
598
- this._type = type;
599
- this.notify(type);
600
- this.props.onSequenceTypeChanged(type);
601
- }
602
- }
603
- });
604
-
605
- var ProteinNotification = React.createClass({
606
- render: function () {
607
- return (
608
- <div
609
- className="notification row"
610
- id="protein-sequence-notification"
611
- style={{ display: 'none' }}>
612
- <div
613
- className="alert-info col-md-6 col-md-offset-3">
614
- Detected: amino-acid sequence(s).
615
- </div>
616
- </div>
617
- );
618
- }
619
- });
620
-
621
- var NucleotideNotification = React.createClass({
622
- render: function () {
623
- return (
624
- <div
625
- className="notification row"
626
- id="nucleotide-sequence-notification"
627
- style={{ display: 'none' }}>
628
- <div
629
- className="alert-info col-md-6 col-md-offset-3">
630
- Detected: nucleotide sequence(s).
631
- </div>
632
- </div>
633
- );
634
- }
635
- });
636
-
637
- var MixedNotification = React.createClass({
638
- render: function () {
639
- return (
640
- <div
641
- className="notification row"
642
- id="mixed-sequence-notification"
643
- style={{ display: 'none' }}>
644
- <div
645
- className="alert-danger col-md-10 col-md-offset-1">
646
- Error: mixed nucleotide and amino-acid sequences detected.
647
- </div>
648
- </div>
649
- );
650
- }
651
- });
652
-
653
- var Databases = React.createClass({
654
- getInitialState: function () {
655
- return { type: '' };
656
- },
657
-
658
- databases: function (category) {
659
- var databases = this.props.databases;
660
- if (category) {
661
- databases = _.select(databases, database => database.type === category);
662
- }
663
-
664
- return _.sortBy(databases, 'title');
665
- },
666
-
667
- nselected: function () {
668
- return $('input[name="databases[]"]:checked').length;
669
- },
670
-
671
- categories: function () {
672
- return _.uniq(_.map(this.props.databases,
673
- _.iteratee('type'))).sort();
674
- },
675
-
676
- handleClick: function (database) {
677
- var type = this.nselected() ? database.type : '';
678
- if (type != this.state.type) this.setState({type: type});
679
- },
680
-
681
- handleToggle: function (toggleState, type) {
682
- switch (toggleState) {
683
- case '[Select all]':
684
- $(`.${type} .database input:not(:checked)`).click();
685
- break;
686
- case '[Deselect all]':
687
- $(`.${type} .database input:checked`).click();
688
- break;
689
- }
690
- },
691
-
692
- render: function () {
693
- return (
694
- <div className="form-group databases-container">
695
- { _.map(this.categories(), this.renderDatabases) }
696
- </div>
697
- );
698
- },
699
-
700
- renderDatabases: function (category) {
701
- // Panel name and column width.
702
- var panelTitle = category[0].toUpperCase() +
703
- category.substring(1).toLowerCase() + ' databases';
704
- var columnClass = this.categories().length === 1 ? 'col-md-12' :
705
- 'col-md-6';
706
-
707
- // Toggle button.
708
- var toggleState = '[Select all]';
709
- var toggleClass = 'btn-link';
710
- var toggleShown = this.databases(category).length > 1 ;
711
- var toggleDisabled = this.state.type && this.state.type !== category;
712
- if (toggleShown && toggleDisabled) toggleClass += ' disabled';
713
- if (!toggleShown) toggleClass += ' hidden';
714
- if (this.nselected() === this.databases(category).length) {
715
- toggleState = '[Deselect all]';
716
- }
717
-
718
- // JSX.
719
- return (
720
- <div className={columnClass} key={'DB_'+category}>
721
- <div className="panel panel-default">
722
- <div className="panel-heading">
723
- <h4 style={{display: 'inline'}}>{panelTitle}</h4> &nbsp;&nbsp;
724
- <button type="button" className={toggleClass} disabled={toggleDisabled}
725
- onClick={ function () { this.handleToggle(toggleState, category); }.bind(this) }>
726
- {toggleState}
727
- </button>
728
- </div>
729
- <ul className={'list-group databases ' + category}>
730
- {
731
- _.map(this.databases(category), _.bind(function (database,index) {
732
- return (
733
- <li className="list-group-item" key={'DB_'+category+index}>
734
- { this.renderDatabase(database) }
735
- </li>
736
- );
737
- }, this))
738
- }
739
- </ul>
740
- </div>
741
- </div>
742
- );
743
- },
744
-
745
- renderDatabase: function (database) {
746
- var disabled = this.state.type && this.state.type !== database.type;
747
-
748
- return (
749
- <label
750
- className={disabled && 'disabled database' || 'database'}>
751
- <input
752
- type="checkbox" name="databases[]" value={database.id}
753
- data-type={database.type} disabled={disabled}
754
- onChange=
755
- {
756
- _.bind(function () {
757
- this.handleClick(database);
758
- }, this)
759
- }/>
760
- {' ' + (database.title || database.name)}
761
- </label>
762
- );
763
- },
764
-
765
- componentDidUpdate: function () {
766
- if (this.databases() && this.databases().length === 1) {
767
- $('.databases').find('input').prop('checked',true);
768
- this.handleClick(this.databases()[0]);
769
- }
770
-
771
- if (this.props.preSelectedDbs) {
772
- var selectors = this.props.preSelectedDbs.map(db => `input[value=${db.id}]`);
773
- $(...selectors).prop('checked',true);
774
- this.handleClick(this.props.preSelectedDbs[0]);
775
- this.props.preSelectedDbs = null;
776
- }
777
- this.props.onDatabaseTypeChanged(this.state.type);
778
- }
779
- });
780
-
781
- // Component for the advanced params input field.
782
- var Options = React.createClass({
783
- // State of this component is the advanced params text.
784
- getInitialState: function () {
785
- return { preOpts: '' };
786
- },
787
-
788
- updateBox: function (evt) {
789
- this.setState({
790
- preOpts: evt.target.value
791
- });
792
- },
793
-
794
- render: function () {
795
- var classNames = 'form-control';
796
- if (this.state.preOpts.trim()) {
797
- classNames += ' yellow-background';
798
- }
799
- return (
800
- <div className="col-md-7">
801
- <div className="form-group">
802
- <div className="col-md-12">
803
- <div className="input-group">
804
- <label className="control-label" htmlFor="advanced">
805
- Advanced parameters:
806
- </label>
807
- <input type="text" className={classNames} onChange={this.updateBox}
808
- id="advanced" name="advanced" value={this.state.preOpts}
809
- placeholder="eg: -evalue 1.0e-5 -num_alignments 100"
810
- title="View, and enter advanced parameters."
811
- />
812
- <div
813
- className="input-group-addon cursor-pointer"
814
- data-toggle="modal" data-target="#help">
815
- <i className="fa fa-question"></i>
816
- </div>
817
- </div>
818
- </div>
819
- </div>
820
- </div>
821
- );
822
- }
823
- });
824
-
825
- /**
826
- * SearchButton widget.
827
- */
828
- var SearchButton = React.createClass({
829
-
830
- // Internal helpers. //
831
-
832
- /**
833
- * Returns jquery wrapped input group.
834
- */
835
- inputGroup: function () {
836
- return $(React.findDOMNode(this.refs.inputGroup));
837
- },
838
-
839
- /**
840
- * Returns jquery wrapped submit button.
841
- */
842
- submitButton: function () {
843
- return $(React.findDOMNode(this.refs.submitButton));
844
- },
845
-
846
- /**
847
- * Initialise tooltip on input group and submit button.
848
- */
849
- initTooltip: function () {
850
- this.inputGroup().tooltip({
851
- trigger: 'manual',
852
- title: _.bind(function () {
853
- if (!this.state.hasQuery && !this.state.hasDatabases) {
854
- return 'You must enter a query sequence and select one or more databases above before you can run a search!';
855
- }
856
- else if (this.state.hasQuery && !this.state.hasDatabases) {
857
- return 'You must select one or more databases above before you can run a search!';
858
- }
859
- else if (!this.state.hasQuery && this.state.hasDatabases) {
860
- return 'You must enter a query sequence above before you can run a search!';
861
- }
862
- }, this)
863
- });
864
-
865
- this.submitButton().tooltip({
866
- title: _.bind(function () {
867
- var title = 'Click to BLAST or press Ctrl+Enter.';
868
- if (this.state.methods.length > 1) {
869
- title += ' Click dropdown button on the right for other' +
870
- ' BLAST algorithms that can be used.';
871
- }
872
- return title;
873
- }, this)
874
- });
875
- },
876
-
877
- /**
878
- * Show tooltip on input group.
879
- */
880
- showTooltip: function () {
881
- this.inputGroup()._tooltip('show');
882
- },
883
-
884
- /**
885
- * Hide tooltip on input group.
886
- */
887
- hideTooltip: function () {
888
- this.inputGroup()._tooltip('hide');
889
- },
890
-
891
- /**
892
- * Change selected algorithm.
893
- *
894
- * NOTE: Called on click on dropdown menu items.
895
- */
896
- changeAlgorithm: function (method) {
897
- var methods = this.state.methods.slice();
898
- methods.splice(methods.indexOf(method), 1);
899
- methods.unshift(method);
900
- this.setState({
901
- methods: methods
902
- });
903
- },
904
-
905
- /**
906
- * Given, for example 'blastp', returns blast<strong>p</strong>.
907
- */
908
- decorate: function(name) {
909
- return name.match(/(.?)(blast)(.?)/).slice(1).map(function (token, _) {
910
- if (token) {
911
- if (token !== 'blast'){
912
- return (<strong key={token}>{token}</strong>);
913
- }
914
- else {
915
- return token;
916
- }
917
- }
918
- });
919
- },
920
-
921
-
922
- // Lifecycle methods. //
923
-
924
- getInitialState: function () {
925
- return {
926
- methods: [],
927
- hasQuery: false,
928
- hasDatabases: false
929
- };
930
- },
931
-
932
- render: function () {
933
- var methods = this.state.methods;
934
- var method = methods[0];
935
- var multi = methods.length > 1;
936
-
937
- return (
938
- <div className="col-md-3">
939
- <div className="form-group">
940
- <div className="col-md-12">
941
- <div
942
- className={multi && 'input-group'} id="methods" ref="inputGroup"
943
- onMouseOver={this.showTooltip} onMouseOut={this.hideTooltip}>
944
- <button
945
- type="submit" className="btn btn-primary form-control text-uppercase"
946
- id="method" ref="submitButton" name="method" value={method} disabled={!method}>
947
- {this.decorate(method || 'blast')}
948
- </button>
949
- {
950
- multi && <div
951
- className="input-group-btn">
952
- <button
953
- className="btn btn-primary dropdown-toggle"
954
- data-toggle="dropdown">
955
- <span className="caret"></span>
956
- </button>
957
- <ul
958
- className="dropdown-menu dropdown-menu-right">
959
- {
960
- _.map(methods.slice(1), _.bind(function (method) {
961
- return (
962
- <li key={method} className="text-uppercase"
963
- onClick={
964
- _.bind(function () {
965
- this.changeAlgorithm(method);
966
- }, this)
967
- }>
968
- {method}
969
- </li>
970
- );
971
- }, this))
972
- }
973
- </ul>
974
- </div>
975
- }
976
- </div>
977
- </div>
978
- </div>
979
- </div>
980
- );
981
- },
982
-
983
- componentDidMount: function () {
984
- this.initTooltip();
985
- },
986
-
987
- shouldComponentUpdate: function (props , state) {
988
- return !(_.isEqual(state.methods, this.state.methods));
989
- },
990
-
991
- componentDidUpdate: function () {
992
- if (this.state.methods.length > 0) {
993
- this.inputGroup().wiggle();
994
- this.props.onAlgoChanged(this.state.methods[0]);
995
- }
996
- else {
997
- this.props.onAlgoChanged('');
998
- }
999
- }
1000
- });
23
+ class Page extends Component {
24
+ componentDidMount() {
25
+ this.refs.dnd.setState({ query: this.refs.form.refs.query });
26
+ }
27
+ render() {
28
+ return (
29
+ <div>
30
+ <DnD ref="dnd" />
31
+ <Form ref="form" />
32
+ </div>
33
+ );
34
+ }
35
+ }
1001
36
 
1002
- React.render(<Page/>, document.getElementById('view'));
37
+ const root = createRoot(document.getElementById("view"));
38
+ root.render(<Page />);