@openneuro/app 4.1.0 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/package.json +9 -18
  2. package/src/scripts/common/forms/warn-button.jsx +1 -1
  3. package/src/scripts/{redesign.tsx → index.tsx} +4 -4
  4. package/src/scripts/pages/citation-page.tsx +41 -0
  5. package/src/scripts/refactor_2021/admin/admin.jsx +1 -1
  6. package/src/scripts/refactor_2021/admin/flagged-files.jsx +2 -1
  7. package/src/scripts/refactor_2021/admin/user-tools.tsx +3 -5
  8. package/src/scripts/refactor_2021/admin/users.jsx +7 -10
  9. package/src/scripts/{authentication → refactor_2021/authentication}/__tests__/profile.spec.js +1 -1
  10. package/src/scripts/refactor_2021/containers/footer.tsx +1 -3
  11. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/__snapshots__/comment.spec.jsx.snap +0 -8
  12. package/src/scripts/refactor_2021/dataset/comments/__tests__/__snapshots__/comments.spec.jsx.snap +129 -0
  13. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/comment.spec.jsx +0 -0
  14. package/src/scripts/{datalad/dataset → refactor_2021/dataset/comments}/__tests__/comments.spec.jsx +0 -0
  15. package/src/scripts/refactor_2021/dataset/dataset-query.jsx +5 -3
  16. package/src/scripts/refactor_2021/dataset/dataset-routes.jsx +14 -4
  17. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-command-line.spec.jsx.snap +0 -0
  18. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-link.spec.jsx.snap +645 -105
  19. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/shell-example.spec.jsx.snap +6 -3
  20. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-command-line.spec.jsx +0 -0
  21. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-link.spec.jsx +0 -0
  22. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-native.spec.js +0 -0
  23. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/shell-example.spec.jsx +0 -0
  24. package/src/scripts/refactor_2021/dataset/download/download-datalad.jsx +45 -10
  25. package/src/scripts/refactor_2021/dataset/draft-container.tsx +2 -0
  26. package/src/scripts/refactor_2021/dataset/files/file-tree.jsx +3 -2
  27. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/cancel-button.spec.tsx.snap +10 -0
  28. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-button.spec.tsx.snap +10 -0
  29. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +24 -0
  30. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/save-button.spec.tsx.snap +10 -0
  31. package/src/scripts/{datalad/fragments/__tests__/__snapshots__/select-input.spec.jsx.snap → refactor_2021/dataset/fragments/__tests__/__snapshots__/select-input.spec.tsx.snap} +0 -0
  32. package/src/scripts/{datalad/fragments/__tests__/cancel-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/cancel-button.spec.tsx} +2 -2
  33. package/src/scripts/{datalad → refactor_2021/dataset}/fragments/__tests__/dataset-citation.spec.jsx +0 -0
  34. package/src/scripts/{datalad/fragments/__tests__/edit-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/edit-button.spec.tsx} +2 -2
  35. package/src/scripts/refactor_2021/dataset/fragments/__tests__/edit-list.spec.jsx +27 -0
  36. package/src/scripts/{datalad/fragments/__tests__/save-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/save-button.spec.tsx} +2 -2
  37. package/src/scripts/{datalad/fragments/__tests__/select-input.spec.jsx → refactor_2021/dataset/fragments/__tests__/select-input.spec.tsx} +0 -0
  38. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +50 -0
  39. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/__snapshots__/description.spec.jsx.snap +0 -0
  40. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +27 -0
  41. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/cache-id.spec.js +0 -0
  42. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/delete.spec.jsx +8 -8
  43. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/description.spec.jsx +0 -0
  44. package/src/scripts/{datalad/mutations/__tests__/remove-permissions.spec.jsx → refactor_2021/dataset/mutations/__tests__/remove-permissions.spec.tsx} +1 -1
  45. package/src/scripts/refactor_2021/dataset/mutations/__tests__/update-permissions.spec.jsx +28 -0
  46. package/src/scripts/refactor_2021/dataset/mutations/dataset-relations.tsx +1 -1
  47. package/src/scripts/refactor_2021/dataset/mutations/update-file.jsx +2 -2
  48. package/src/scripts/refactor_2021/dataset/routes/download-dataset.tsx +76 -0
  49. package/src/scripts/refactor_2021/dataset/snapshot-container.tsx +10 -4
  50. package/src/scripts/refactor_2021/routes.tsx +1 -1
  51. package/src/scripts/refactor_2021/search/__tests__/search-params-ctx.spec.tsx +20 -0
  52. package/src/scripts/refactor_2021/search/initial-search-params.tsx +7 -7
  53. package/src/scripts/refactor_2021/search/inputs/__tests__/sort-by-select.spec.tsx +83 -0
  54. package/src/scripts/refactor_2021/search/inputs/index.ts +2 -2
  55. package/src/scripts/refactor_2021/search/inputs/{gender-radios.tsx → sex-radios.tsx} +10 -10
  56. package/src/scripts/refactor_2021/search/inputs/sort-by-select.tsx +38 -8
  57. package/src/scripts/refactor_2021/search/search-container.tsx +3 -3
  58. package/src/scripts/refactor_2021/search/search-params-ctx.tsx +3 -3
  59. package/src/scripts/refactor_2021/search/use-search-results.tsx +4 -3
  60. package/src/scripts/refactor_2021/uploader/upload-disclaimer.jsx +4 -3
  61. package/src/scripts/refactor_2021/user/api.jsx +11 -6
  62. package/src/server.jsx +1 -5
  63. package/src/ssr.ts +0 -1
  64. package/src/sass/_bootstrap-compass.scss +0 -9
  65. package/src/sass/_bootstrap-mincer.scss +0 -19
  66. package/src/sass/_bootstrap-sprockets.scss +0 -9
  67. package/src/sass/_bootstrap.scss +0 -50
  68. package/src/sass/animate/_attention-seekers/_bounce.scss +0 -15
  69. package/src/sass/animate/_attention-seekers/_flash.scss +0 -14
  70. package/src/sass/animate/_attention-seekers/_pulse.scss +0 -17
  71. package/src/sass/animate/_attention-seekers/_rubberBand.scss +0 -19
  72. package/src/sass/animate/_attention-seekers/_shake.scss +0 -15
  73. package/src/sass/animate/_attention-seekers/_swing.scss +0 -19
  74. package/src/sass/animate/_attention-seekers/_tada.scss +0 -17
  75. package/src/sass/animate/_attention-seekers/_wobble.scss +0 -21
  76. package/src/sass/animate/_attention-seekers/attention-seekers.scss +0 -12
  77. package/src/sass/animate/_bouncing-entrances/_bounceIn.scss +0 -26
  78. package/src/sass/animate/_bouncing-entrances/_bounceInDown.scss +0 -26
  79. package/src/sass/animate/_bouncing-entrances/_bounceInLeft.scss +0 -26
  80. package/src/sass/animate/_bouncing-entrances/_bounceInRight.scss +0 -26
  81. package/src/sass/animate/_bouncing-entrances/_bounceInUp.scss +0 -26
  82. package/src/sass/animate/_bouncing-entrances/bouncing-entrances.scss +0 -9
  83. package/src/sass/animate/_bouncing-exits/_bounceOut.scss +0 -26
  84. package/src/sass/animate/_bouncing-exits/_bounceOutDown.scss +0 -23
  85. package/src/sass/animate/_bouncing-exits/_bounceOutLeft.scss +0 -23
  86. package/src/sass/animate/_bouncing-exits/_bounceOutRight.scss +0 -23
  87. package/src/sass/animate/_bouncing-exits/_bounceOutUp.scss +0 -23
  88. package/src/sass/animate/_bouncing-exits/bouncing-exits.scss +0 -4
  89. package/src/sass/animate/_fading-entrances/_fadeIn.scss +0 -14
  90. package/src/sass/animate/_fading-entrances/_fadeInDown.scss +0 -20
  91. package/src/sass/animate/_fading-entrances/_fadeInDownBig.scss +0 -20
  92. package/src/sass/animate/_fading-entrances/_fadeInLeft.scss +0 -20
  93. package/src/sass/animate/_fading-entrances/_fadeInLeftBig.scss +0 -20
  94. package/src/sass/animate/_fading-entrances/_fadeInRight.scss +0 -20
  95. package/src/sass/animate/_fading-entrances/_fadeInRightBig.scss +0 -20
  96. package/src/sass/animate/_fading-entrances/_fadeInUp.scss +0 -19
  97. package/src/sass/animate/_fading-entrances/_fadeInUpBig.scss +0 -20
  98. package/src/sass/animate/_fading-entrances/fading-entrances.scss +0 -5
  99. package/src/sass/animate/_fading-exits/_fadeOut.scss +0 -14
  100. package/src/sass/animate/_fading-exits/_fadeOutDown.scss +0 -20
  101. package/src/sass/animate/_fading-exits/_fadeOutDownBig.scss +0 -20
  102. package/src/sass/animate/_fading-exits/_fadeOutLeft.scss +0 -20
  103. package/src/sass/animate/_fading-exits/_fadeOutLeftBig.scss +0 -20
  104. package/src/sass/animate/_fading-exits/_fadeOutRight.scss +0 -20
  105. package/src/sass/animate/_fading-exits/_fadeOutRightBig.scss +0 -20
  106. package/src/sass/animate/_fading-exits/_fadeOutUp.scss +0 -20
  107. package/src/sass/animate/_fading-exits/_fadeOutUpBig.scss +0 -20
  108. package/src/sass/animate/_fading-exits/fading-exits.scss +0 -5
  109. package/src/sass/animate/_flippers/_flip.scss +0 -33
  110. package/src/sass/animate/_flippers/_flipInX.scss +0 -26
  111. package/src/sass/animate/_flippers/_flipInY.scss +0 -26
  112. package/src/sass/animate/_flippers/_flipOutX.scss +0 -20
  113. package/src/sass/animate/_flippers/_flipOutY.scss +0 -20
  114. package/src/sass/animate/_flippers/flippers.scss +0 -8
  115. package/src/sass/animate/_lightspeed/_lightSpeedIn.scss +0 -29
  116. package/src/sass/animate/_lightspeed/_lightSpeedOut.scss +0 -21
  117. package/src/sass/animate/_lightspeed/lightspeed.scss +0 -3
  118. package/src/sass/animate/_properties.scss +0 -119
  119. package/src/sass/animate/_rotating-entrances/_rotateIn.scss +0 -22
  120. package/src/sass/animate/_rotating-entrances/_rotateInDownLeft.scss +0 -22
  121. package/src/sass/animate/_rotating-entrances/_rotateInDownRight.scss +0 -22
  122. package/src/sass/animate/_rotating-entrances/_rotateInUpLeft.scss +0 -22
  123. package/src/sass/animate/_rotating-entrances/_rotateInUpRight.scss +0 -22
  124. package/src/sass/animate/_rotating-entrances/rotating-entrances.scss +0 -8
  125. package/src/sass/animate/_rotating-exits/_rotateOut.scss +0 -22
  126. package/src/sass/animate/_rotating-exits/_rotateOutDownLeft.scss +0 -22
  127. package/src/sass/animate/_rotating-exits/_rotateOutDownRight.scss +0 -22
  128. package/src/sass/animate/_rotating-exits/_rotateOutUpLeft.scss +0 -22
  129. package/src/sass/animate/_rotating-exits/_rotateOutUpRight.scss +0 -22
  130. package/src/sass/animate/_rotating-exits/rotating-exits.scss +0 -8
  131. package/src/sass/animate/_sliding-entrances/_slideInDown.scss +0 -19
  132. package/src/sass/animate/_sliding-entrances/_slideInLeft.scss +0 -19
  133. package/src/sass/animate/_sliding-entrances/_slideInRight.scss +0 -42
  134. package/src/sass/animate/_sliding-entrances/_slideInUp.scss +0 -19
  135. package/src/sass/animate/_sliding-entrances/sliding-entrances.scss +0 -7
  136. package/src/sass/animate/_sliding-exits/_slideOutDown.scss +0 -19
  137. package/src/sass/animate/_sliding-exits/_slideOutLeft.scss +0 -19
  138. package/src/sass/animate/_sliding-exits/_slideOutRight.scss +0 -19
  139. package/src/sass/animate/_sliding-exits/_slideOutUp.scss +0 -19
  140. package/src/sass/animate/_sliding-exits/sliding-exits.scss +0 -7
  141. package/src/sass/animate/_specials/_hinge.scss +0 -37
  142. package/src/sass/animate/_specials/_rollIn.scss +0 -20
  143. package/src/sass/animate/_specials/_rollOut.scss +0 -22
  144. package/src/sass/animate/_specials/specials.scss +0 -6
  145. package/src/sass/animate/_zooming-entrances/_zoomIn.scss +0 -19
  146. package/src/sass/animate/_zooming-entrances/_zoomInDown.scss +0 -22
  147. package/src/sass/animate/_zooming-entrances/_zoomInLeft.scss +0 -22
  148. package/src/sass/animate/_zooming-entrances/_zoomInRight.scss +0 -22
  149. package/src/sass/animate/_zooming-entrances/_zoomInUp.scss +0 -22
  150. package/src/sass/animate/_zooming-entrances/zooming-entrances.scss +0 -4
  151. package/src/sass/animate/_zooming-exits/_zoomOut.scss +0 -22
  152. package/src/sass/animate/_zooming-exits/_zoomOutDown.scss +0 -23
  153. package/src/sass/animate/_zooming-exits/_zoomOutLeft.scss +0 -21
  154. package/src/sass/animate/_zooming-exits/_zoomOutRight.scss +0 -21
  155. package/src/sass/animate/_zooming-exits/_zoomOutUp.scss +0 -23
  156. package/src/sass/animate/_zooming-exits/zooming-exits.scss +0 -4
  157. package/src/sass/animate/animate.css +0 -7497
  158. package/src/sass/animate/animate.css.map +0 -7
  159. package/src/sass/animate/animate.min.css +0 -2
  160. package/src/sass/animate/animate.min.css.map +0 -7
  161. package/src/sass/animate/animate.scss +0 -30
  162. package/src/sass/animate/bower.json +0 -22
  163. package/src/sass/bootstrap/_alerts.scss +0 -70
  164. package/src/sass/bootstrap/_badges.scss +0 -68
  165. package/src/sass/bootstrap/_breadcrumbs.scss +0 -26
  166. package/src/sass/bootstrap/_button-groups.scss +0 -243
  167. package/src/sass/bootstrap/_buttons.scss +0 -160
  168. package/src/sass/bootstrap/_carousel.scss +0 -269
  169. package/src/sass/bootstrap/_close.scss +0 -36
  170. package/src/sass/bootstrap/_code.scss +0 -69
  171. package/src/sass/bootstrap/_component-animations.scss +0 -37
  172. package/src/sass/bootstrap/_dropdowns.scss +0 -223
  173. package/src/sass/bootstrap/_forms.scss +0 -613
  174. package/src/sass/bootstrap/_grid.scss +0 -84
  175. package/src/sass/bootstrap/_input-groups.scss +0 -166
  176. package/src/sass/bootstrap/_jumbotron.scss +0 -50
  177. package/src/sass/bootstrap/_labels.scss +0 -66
  178. package/src/sass/bootstrap/_list-group.scss +0 -124
  179. package/src/sass/bootstrap/_media.scss +0 -61
  180. package/src/sass/bootstrap/_mixins.scss +0 -39
  181. package/src/sass/bootstrap/_modals.scss +0 -150
  182. package/src/sass/bootstrap/_navbar.scss +0 -647
  183. package/src/sass/bootstrap/_navs.scss +0 -243
  184. package/src/sass/bootstrap/_normalize.scss +0 -427
  185. package/src/sass/bootstrap/_pager.scss +0 -54
  186. package/src/sass/bootstrap/_pagination.scss +0 -88
  187. package/src/sass/bootstrap/_panels.scss +0 -265
  188. package/src/sass/bootstrap/_popovers.scss +0 -135
  189. package/src/sass/bootstrap/_print.scss +0 -107
  190. package/src/sass/bootstrap/_progress-bars.scss +0 -87
  191. package/src/sass/bootstrap/_responsive-embed.scss +0 -35
  192. package/src/sass/bootstrap/_responsive-utilities.scss +0 -177
  193. package/src/sass/bootstrap/_scaffolding.scss +0 -162
  194. package/src/sass/bootstrap/_tables.scss +0 -234
  195. package/src/sass/bootstrap/_theme.scss +0 -273
  196. package/src/sass/bootstrap/_thumbnails.scss +0 -38
  197. package/src/sass/bootstrap/_tooltip.scss +0 -102
  198. package/src/sass/bootstrap/_type.scss +0 -298
  199. package/src/sass/bootstrap/_utilities.scss +0 -55
  200. package/src/sass/bootstrap/_variables.scss +0 -866
  201. package/src/sass/bootstrap/_wells.scss +0 -29
  202. package/src/sass/bootstrap/float-label.scss +0 -70
  203. package/src/sass/bootstrap/mixins/_alerts.scss +0 -14
  204. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -11
  205. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -18
  206. package/src/sass/bootstrap/mixins/_buttons.scss +0 -52
  207. package/src/sass/bootstrap/mixins/_center-block.scss +0 -7
  208. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -22
  209. package/src/sass/bootstrap/mixins/_forms.scss +0 -88
  210. package/src/sass/bootstrap/mixins/_gradients.scss +0 -58
  211. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -81
  212. package/src/sass/bootstrap/mixins/_grid.scss +0 -122
  213. package/src/sass/bootstrap/mixins/_hide-text.scss +0 -21
  214. package/src/sass/bootstrap/mixins/_image.scss +0 -33
  215. package/src/sass/bootstrap/mixins/_labels.scss +0 -12
  216. package/src/sass/bootstrap/mixins/_list-group.scss +0 -31
  217. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  218. package/src/sass/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  219. package/src/sass/bootstrap/mixins/_opacity.scss +0 -8
  220. package/src/sass/bootstrap/mixins/_pagination.scss +0 -23
  221. package/src/sass/bootstrap/mixins/_panels.scss +0 -24
  222. package/src/sass/bootstrap/mixins/_progress-bar.scss +0 -10
  223. package/src/sass/bootstrap/mixins/_reset-filter.scss +0 -8
  224. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  225. package/src/sass/bootstrap/mixins/_responsive-visibility.scss +0 -21
  226. package/src/sass/bootstrap/mixins/_size.scss +0 -10
  227. package/src/sass/bootstrap/mixins/_tab-focus.scss +0 -9
  228. package/src/sass/bootstrap/mixins/_table-row.scss +0 -28
  229. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -11
  230. package/src/sass/bootstrap/mixins/_text-overflow.scss +0 -8
  231. package/src/sass/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  232. package/src/sass/crn_app/_admin.admin.scss +0 -205
  233. package/src/sass/crn_app/_admin.graphs.scss +0 -51
  234. package/src/sass/crn_app/_admin.tools.scss +0 -24
  235. package/src/sass/crn_app/_api.scss +0 -65
  236. package/src/sass/crn_app/_bootstrap.overrides.scss +0 -54
  237. package/src/sass/crn_app/_colors.scss +0 -88
  238. package/src/sass/crn_app/_common.click-to-edit.scss +0 -187
  239. package/src/sass/crn_app/_common.modals.scss +0 -686
  240. package/src/sass/crn_app/_common.pagination.scss +0 -41
  241. package/src/sass/crn_app/_common.papaya.scss +0 -348
  242. package/src/sass/crn_app/_common.progress-bar.scss +0 -26
  243. package/src/sass/crn_app/_common.spinner.scss +0 -63
  244. package/src/sass/crn_app/_common.status.scss +0 -103
  245. package/src/sass/crn_app/_common.tooltip.scss +0 -22
  246. package/src/sass/crn_app/_common.typeahead.scss +0 -31
  247. package/src/sass/crn_app/_common.variables.scss +0 -16
  248. package/src/sass/crn_app/_dashboard.datasets.scss +0 -588
  249. package/src/sass/crn_app/_dataset.comments.scss +0 -201
  250. package/src/sass/crn_app/_dataset.dataset.scss +0 -161
  251. package/src/sass/crn_app/_dataset.file-tree.scss +0 -277
  252. package/src/sass/crn_app/_dataset.jobs.scss +0 -701
  253. package/src/sass/crn_app/_dataset.sidebar.scss +0 -265
  254. package/src/sass/crn_app/_dataset.tools.scss +0 -118
  255. package/src/sass/crn_app/_elements-wrappers.scss +0 -870
  256. package/src/sass/crn_app/_faq.scss +0 -37
  257. package/src/sass/crn_app/_frontPage.scss +0 -569
  258. package/src/sass/crn_app/_nav.navbar.scss +0 -387
  259. package/src/sass/crn_app/_theme.scss +0 -87
  260. package/src/sass/crn_app/_upload.upload.scss +0 -393
  261. package/src/sass/crn_app/_upload.validation.scss +0 -210
  262. package/src/sass/draft/draft.scss +0 -11
  263. package/src/sass/draft/rich-editor.scss +0 -73
  264. package/src/sass/font-awesome/_animated.scss +0 -34
  265. package/src/sass/font-awesome/_bordered-pulled.scss +0 -25
  266. package/src/sass/font-awesome/_core.scss +0 -12
  267. package/src/sass/font-awesome/_fixed-width.scss +0 -6
  268. package/src/sass/font-awesome/_font-awesome.scss +0 -17
  269. package/src/sass/font-awesome/_icons.scss +0 -697
  270. package/src/sass/font-awesome/_larger.scss +0 -13
  271. package/src/sass/font-awesome/_list.scss +0 -19
  272. package/src/sass/font-awesome/_mixins.scss +0 -26
  273. package/src/sass/font-awesome/_path.scss +0 -15
  274. package/src/sass/font-awesome/_rotated-flipped.scss +0 -20
  275. package/src/sass/font-awesome/_stacked.scss +0 -20
  276. package/src/sass/font-awesome/_variables.scss +0 -713
  277. package/src/sass/main.scss +0 -317
  278. package/src/sass/pre-refactor-with-wrapper-main.scss +0 -1549
  279. package/src/scripts/admin/__tests__/__snapshots__/exports.spec.jsx.snap +0 -112
  280. package/src/scripts/admin/__tests__/exports.spec.jsx +0 -15
  281. package/src/scripts/admin/__tests__/users.spec.jsx +0 -15
  282. package/src/scripts/admin/admin.jsx +0 -53
  283. package/src/scripts/admin/flagged-files.jsx +0 -178
  284. package/src/scripts/admin/user-fragment.ts +0 -14
  285. package/src/scripts/admin/user-tools.tsx +0 -83
  286. package/src/scripts/admin/users.jsx +0 -224
  287. package/src/scripts/authentication/admin-user.jsx +0 -23
  288. package/src/scripts/authentication/buttons.jsx +0 -26
  289. package/src/scripts/authentication/globus-button.jsx +0 -39
  290. package/src/scripts/authentication/google-button.jsx +0 -32
  291. package/src/scripts/authentication/logged-in.jsx +0 -12
  292. package/src/scripts/authentication/logged-out.jsx +0 -12
  293. package/src/scripts/authentication/loginCheck.js +0 -7
  294. package/src/scripts/authentication/orcid-button.jsx +0 -32
  295. package/src/scripts/authentication/withProfile.jsx +0 -22
  296. package/src/scripts/classic.tsx +0 -18
  297. package/src/scripts/common/forms/file-select.tsx +0 -71
  298. package/src/scripts/common/partials/__tests__/__snapshots__/footer.spec.jsx.snap +0 -42
  299. package/src/scripts/common/partials/__tests__/__snapshots__/metric.spec.jsx.snap +0 -101
  300. package/src/scripts/common/partials/__tests__/footer.spec.jsx +0 -10
  301. package/src/scripts/common/partials/__tests__/metric.spec.jsx +0 -31
  302. package/src/scripts/common/partials/footer.jsx +0 -40
  303. package/src/scripts/common/partials/login.jsx +0 -99
  304. package/src/scripts/common/partials/metric.jsx +0 -73
  305. package/src/scripts/common/partials/spinner.jsx +0 -34
  306. package/src/scripts/common/partials/status.jsx +0 -96
  307. package/src/scripts/common/partials/timeout.jsx +0 -47
  308. package/src/scripts/common/partials/tooltip.jsx +0 -36
  309. package/src/scripts/components/__tests__/dropdown-button.spec.tsx +0 -49
  310. package/src/scripts/components/dropdown-button.tsx +0 -42
  311. package/src/scripts/components/feature-toggle.tsx +0 -19
  312. package/src/scripts/components/panel-group.tsx +0 -24
  313. package/src/scripts/components/panel.tsx +0 -42
  314. package/src/scripts/datalad/__tests__/snapshotVersion.spec.js +0 -21
  315. package/src/scripts/datalad/comments/__tests__/comment-editor.spec.jsx +0 -19
  316. package/src/scripts/datalad/comments/block-style-controls.jsx +0 -46
  317. package/src/scripts/datalad/comments/comment-editor.jsx +0 -79
  318. package/src/scripts/datalad/comments/inline-style-controls.jsx +0 -34
  319. package/src/scripts/datalad/comments/style-button.jsx +0 -28
  320. package/src/scripts/datalad/dashboard/__tests__/__snapshots__/dashboard.spec.jsx.snap +0 -163
  321. package/src/scripts/datalad/dashboard/__tests__/dashboard.spec.jsx +0 -21
  322. package/src/scripts/datalad/dashboard/dashboard.jsx +0 -54
  323. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-filter.spec.jsx.snap +0 -20
  324. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row-skeleton.spec.jsx.snap +0 -13
  325. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row.spec.jsx.snap +0 -65
  326. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-sorter.spec.jsx.snap +0 -14
  327. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-virtual-scroller.spec.jsx.snap +0 -17
  328. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/uploaded.spec.jsx.snap +0 -27
  329. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-filter.spec.jsx +0 -67
  330. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-query.spec.jsx +0 -72
  331. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row-skeleton.spec.jsx +0 -9
  332. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row.spec.jsx +0 -53
  333. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-sorter.spec.jsx +0 -69
  334. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-virtual-scroller.spec.jsx +0 -65
  335. package/src/scripts/datalad/dashboard/datasets/__tests__/uploaded.spec.jsx +0 -17
  336. package/src/scripts/datalad/dashboard/datasets/dataset-filter.jsx +0 -78
  337. package/src/scripts/datalad/dashboard/datasets/dataset-query.jsx +0 -102
  338. package/src/scripts/datalad/dashboard/datasets/dataset-row-error-boundary.jsx +0 -52
  339. package/src/scripts/datalad/dashboard/datasets/dataset-row-skeleton.jsx +0 -10
  340. package/src/scripts/datalad/dashboard/datasets/dataset-row.jsx +0 -58
  341. package/src/scripts/datalad/dashboard/datasets/dataset-sorter.jsx +0 -148
  342. package/src/scripts/datalad/dashboard/datasets/dataset-statuses.jsx +0 -44
  343. package/src/scripts/datalad/dashboard/datasets/dataset-tab.jsx +0 -192
  344. package/src/scripts/datalad/dashboard/datasets/dataset-virtual-scroller.jsx +0 -126
  345. package/src/scripts/datalad/dashboard/datasets/row-height.jsx +0 -7
  346. package/src/scripts/datalad/dashboard/datasets/uploaded.jsx +0 -33
  347. package/src/scripts/datalad/dataset/__tests__/__snapshots__/comments.spec.jsx.snap +0 -137
  348. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-page.spec.jsx.snap +0 -69
  349. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-query.spec.jsx.snap +0 -15
  350. package/src/scripts/datalad/dataset/__tests__/__snapshots__/left-siderbar.spec.jsx.snap +0 -85
  351. package/src/scripts/datalad/dataset/__tests__/dataset-page.spec.jsx +0 -33
  352. package/src/scripts/datalad/dataset/__tests__/dataset-query.spec.jsx +0 -20
  353. package/src/scripts/datalad/dataset/__tests__/left-siderbar.spec.jsx +0 -106
  354. package/src/scripts/datalad/dataset/comment.jsx +0 -90
  355. package/src/scripts/datalad/dataset/comments.jsx +0 -83
  356. package/src/scripts/datalad/dataset/dataset-description.jsx +0 -111
  357. package/src/scripts/datalad/dataset/dataset-main.jsx +0 -29
  358. package/src/scripts/datalad/dataset/dataset-page.jsx +0 -63
  359. package/src/scripts/datalad/dataset/dataset-query.jsx +0 -192
  360. package/src/scripts/datalad/dataset/dataset.jsx +0 -22
  361. package/src/scripts/datalad/dataset/delete-page.tsx +0 -92
  362. package/src/scripts/datalad/dataset/left-sidebar.jsx +0 -109
  363. package/src/scripts/datalad/download/__tests__/__snapshots__/download-dataset.spec.jsx.snap +0 -7
  364. package/src/scripts/datalad/download/__tests__/__snapshots__/download-tool.spec.jsx.snap +0 -26
  365. package/src/scripts/datalad/download/__tests__/download-dataset.spec.jsx +0 -19
  366. package/src/scripts/datalad/download/__tests__/download-tool.spec.jsx +0 -19
  367. package/src/scripts/datalad/download/download-command-line.jsx +0 -43
  368. package/src/scripts/datalad/download/download-datalad.jsx +0 -58
  369. package/src/scripts/datalad/download/download-dataset.jsx +0 -61
  370. package/src/scripts/datalad/download/download-link.jsx +0 -41
  371. package/src/scripts/datalad/download/download-native.js +0 -118
  372. package/src/scripts/datalad/download/download-query.js +0 -22
  373. package/src/scripts/datalad/download/download-s3.jsx +0 -46
  374. package/src/scripts/datalad/download/download-tool.jsx +0 -44
  375. package/src/scripts/datalad/download/native-file-toast.jsx +0 -90
  376. package/src/scripts/datalad/download/shell-example.jsx +0 -9
  377. package/src/scripts/datalad/download/track-download.js +0 -15
  378. package/src/scripts/datalad/fragments/__tests__/__snapshots__/cancel-button.spec.jsx.snap +0 -21
  379. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-analytics.spec.jsx.snap +0 -41
  380. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-authors.spec.jsx.snap +0 -13
  381. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-readme.spec.jsx.snap +0 -49
  382. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-title.spec.jsx.snap +0 -7
  383. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-tools.spec.jsx.snap +0 -346
  384. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-uploaded.spec.jsx.snap +0 -7
  385. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-button.spec.jsx.snap +0 -21
  386. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +0 -34
  387. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-readme.spec.jsx.snap +0 -3
  388. package/src/scripts/datalad/fragments/__tests__/__snapshots__/save-button.spec.jsx.snap +0 -21
  389. package/src/scripts/datalad/fragments/__tests__/dataset-analytics.spec.jsx +0 -16
  390. package/src/scripts/datalad/fragments/__tests__/dataset-authors.spec.jsx +0 -22
  391. package/src/scripts/datalad/fragments/__tests__/dataset-prominent-links.spec.jsx +0 -32
  392. package/src/scripts/datalad/fragments/__tests__/dataset-readme.spec.jsx +0 -10
  393. package/src/scripts/datalad/fragments/__tests__/dataset-summary.spec.jsx +0 -55
  394. package/src/scripts/datalad/fragments/__tests__/dataset-title.spec.jsx +0 -10
  395. package/src/scripts/datalad/fragments/__tests__/dataset-tools.spec.jsx +0 -55
  396. package/src/scripts/datalad/fragments/__tests__/dataset-uploaded.spec.jsx +0 -16
  397. package/src/scripts/datalad/fragments/__tests__/edit-list.spec.jsx +0 -25
  398. package/src/scripts/datalad/fragments/__tests__/edit-readme.spec.jsx +0 -10
  399. package/src/scripts/datalad/fragments/cancel-button.jsx +0 -24
  400. package/src/scripts/datalad/fragments/copyable-tooltip.jsx +0 -82
  401. package/src/scripts/datalad/fragments/dataset-analytics.jsx +0 -27
  402. package/src/scripts/datalad/fragments/dataset-authors.jsx +0 -16
  403. package/src/scripts/datalad/fragments/dataset-citation.jsx +0 -77
  404. package/src/scripts/datalad/fragments/dataset-files.jsx +0 -50
  405. package/src/scripts/datalad/fragments/dataset-git-access.jsx +0 -56
  406. package/src/scripts/datalad/fragments/dataset-git-hash.jsx +0 -27
  407. package/src/scripts/datalad/fragments/dataset-history.jsx +0 -95
  408. package/src/scripts/datalad/fragments/dataset-modified.jsx +0 -17
  409. package/src/scripts/datalad/fragments/dataset-prominent-links.jsx +0 -129
  410. package/src/scripts/datalad/fragments/dataset-readme.jsx +0 -42
  411. package/src/scripts/datalad/fragments/dataset-summary.jsx +0 -230
  412. package/src/scripts/datalad/fragments/dataset-title.jsx +0 -10
  413. package/src/scripts/datalad/fragments/dataset-tools.jsx +0 -190
  414. package/src/scripts/datalad/fragments/dataset-uploaded.jsx +0 -25
  415. package/src/scripts/datalad/fragments/edit-button.jsx +0 -24
  416. package/src/scripts/datalad/fragments/edit-description-field.jsx +0 -54
  417. package/src/scripts/datalad/fragments/edit-description-list.jsx +0 -49
  418. package/src/scripts/datalad/fragments/edit-list.jsx +0 -82
  419. package/src/scripts/datalad/fragments/edit-readme.jsx +0 -44
  420. package/src/scripts/datalad/fragments/incomplete-dataset.jsx +0 -23
  421. package/src/scripts/datalad/fragments/metadata-tool.jsx +0 -34
  422. package/src/scripts/datalad/fragments/number-input.tsx +0 -126
  423. package/src/scripts/datalad/fragments/save-button.jsx +0 -24
  424. package/src/scripts/datalad/fragments/select-input.tsx +0 -247
  425. package/src/scripts/datalad/fragments/share-dataset-button.jsx +0 -32
  426. package/src/scripts/datalad/fragments/text-array-input.tsx +0 -119
  427. package/src/scripts/datalad/fragments/text-input.tsx +0 -206
  428. package/src/scripts/datalad/mutations/__tests__/__snapshots__/comment.spec.jsx.snap +0 -5
  429. package/src/scripts/datalad/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +0 -181
  430. package/src/scripts/datalad/mutations/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -361
  431. package/src/scripts/datalad/mutations/__tests__/__snapshots__/subscribe-to-newsletter.spec.jsx.snap +0 -83
  432. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-file.spec.jsx.snap +0 -25
  433. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +0 -361
  434. package/src/scripts/datalad/mutations/__tests__/comment.spec.jsx +0 -154
  435. package/src/scripts/datalad/mutations/__tests__/manage-permissions.spec.jsx +0 -21
  436. package/src/scripts/datalad/mutations/__tests__/subscribe-to-newsletter.spec.jsx +0 -10
  437. package/src/scripts/datalad/mutations/__tests__/update-file.spec.jsx +0 -15
  438. package/src/scripts/datalad/mutations/__tests__/update-permissions.spec.jsx +0 -21
  439. package/src/scripts/datalad/mutations/add-metadata.jsx +0 -164
  440. package/src/scripts/datalad/mutations/comment.jsx +0 -164
  441. package/src/scripts/datalad/mutations/delete-dataset-form.jsx +0 -82
  442. package/src/scripts/datalad/mutations/description.jsx +0 -129
  443. package/src/scripts/datalad/mutations/flag-annex-object.jsx +0 -62
  444. package/src/scripts/datalad/mutations/metadata-form.jsx +0 -388
  445. package/src/scripts/datalad/mutations/readme.jsx +0 -53
  446. package/src/scripts/datalad/mutations/remove-annex-object.jsx +0 -71
  447. package/src/scripts/datalad/mutations/subscribe-to-newsletter.jsx +0 -26
  448. package/src/scripts/datalad/mutations/update-file.jsx +0 -51
  449. package/src/scripts/datalad/routes/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -159
  450. package/src/scripts/datalad/routes/__tests__/__snapshots__/snapshot.spec.jsx.snap +0 -31
  451. package/src/scripts/datalad/routes/__tests__/dataset-content.spec.jsx +0 -108
  452. package/src/scripts/datalad/routes/__tests__/file-display.spec.jsx +0 -22
  453. package/src/scripts/datalad/routes/__tests__/manage-permissions.spec.jsx +0 -101
  454. package/src/scripts/datalad/routes/__tests__/snapshot.spec.jsx +0 -49
  455. package/src/scripts/datalad/routes/admin-datalad.jsx +0 -45
  456. package/src/scripts/datalad/routes/admin-exports.jsx +0 -125
  457. package/src/scripts/datalad/routes/dataset-content.jsx +0 -198
  458. package/src/scripts/datalad/routes/dataset-routes.jsx +0 -162
  459. package/src/scripts/datalad/routes/file-display.jsx +0 -84
  460. package/src/scripts/datalad/routes/manage-permissions.jsx +0 -128
  461. package/src/scripts/datalad/routes/snapshot-content.jsx +0 -135
  462. package/src/scripts/datalad/routes/snapshot.jsx +0 -131
  463. package/src/scripts/datalad/snapshotVersion.js +0 -7
  464. package/src/scripts/datalad/validation/validation-panel.jsx +0 -48
  465. package/src/scripts/datalad/validation/validation-status.jsx +0 -120
  466. package/src/scripts/datalad/validation/validation.jsx +0 -40
  467. package/src/scripts/dataset/dataset.metrics.jsx +0 -61
  468. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree-unloaded-directory.spec.jsx.snap +0 -26
  469. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree.spec.jsx.snap +0 -18
  470. package/src/scripts/file-tree/__tests__/__snapshots__/file.spec.jsx.snap +0 -81
  471. package/src/scripts/file-tree/__tests__/file-tree-loading.spec.jsx +0 -18
  472. package/src/scripts/file-tree/__tests__/file-tree-unloaded-directory.spec.jsx +0 -74
  473. package/src/scripts/file-tree/__tests__/file-tree.spec.jsx +0 -94
  474. package/src/scripts/file-tree/__tests__/file-viewer-type.spec.jsx +0 -15
  475. package/src/scripts/file-tree/__tests__/file.spec.jsx +0 -44
  476. package/src/scripts/file-tree/__tests__/flat-to-tree.spec.js +0 -55
  477. package/src/scripts/file-tree/file-tree-loading.jsx +0 -64
  478. package/src/scripts/file-tree/file-tree-unloaded-directory.jsx +0 -108
  479. package/src/scripts/file-tree/file-tree.jsx +0 -133
  480. package/src/scripts/file-tree/file-view.jsx +0 -31
  481. package/src/scripts/file-tree/file-viewer-type.jsx +0 -45
  482. package/src/scripts/file-tree/file.jsx +0 -123
  483. package/src/scripts/file-tree/files.jsx +0 -126
  484. package/src/scripts/file-tree/flat-to-tree.js +0 -49
  485. package/src/scripts/file-tree/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -51
  486. package/src/scripts/file-tree/viewers/__tests__/file-viewer-json.spec.jsx +0 -15
  487. package/src/scripts/file-tree/viewers/__tests__/parse-tabular.spec.js +0 -24
  488. package/src/scripts/file-tree/viewers/file-viewer-csv.jsx +0 -16
  489. package/src/scripts/file-tree/viewers/file-viewer-html.jsx +0 -20
  490. package/src/scripts/file-tree/viewers/file-viewer-json.jsx +0 -50
  491. package/src/scripts/file-tree/viewers/file-viewer-nifti.jsx +0 -11
  492. package/src/scripts/file-tree/viewers/file-viewer-table.jsx +0 -34
  493. package/src/scripts/file-tree/viewers/file-viewer-text.jsx +0 -13
  494. package/src/scripts/file-tree/viewers/file-viewer-tsv.jsx +0 -16
  495. package/src/scripts/file-tree/viewers/parse-tabular.js +0 -18
  496. package/src/scripts/front-page/__tests__/__snapshots__/email-subscription-box.spec.jsx.snap +0 -190
  497. package/src/scripts/front-page/__tests__/__snapshots__/front-page-stats.spec.jsx.snap +0 -29
  498. package/src/scripts/front-page/__tests__/__snapshots__/front-page-top-datasets.spec.jsx.snap +0 -464
  499. package/src/scripts/front-page/__tests__/dataset-count.spec.jsx +0 -33
  500. package/src/scripts/front-page/__tests__/email-subscription-box.spec.jsx +0 -57
  501. package/src/scripts/front-page/__tests__/front-page-stats.spec.jsx +0 -10
  502. package/src/scripts/front-page/__tests__/front-page-top-datasets.spec.jsx +0 -27
  503. package/src/scripts/front-page/__tests__/participant-count.spec.jsx +0 -31
  504. package/src/scripts/front-page/dataset-count.jsx +0 -29
  505. package/src/scripts/front-page/email-subscription-box.jsx +0 -131
  506. package/src/scripts/front-page/front-page-additional-info.jsx +0 -15
  507. package/src/scripts/front-page/front-page-collaborators.jsx +0 -117
  508. package/src/scripts/front-page/front-page-stats.jsx +0 -71
  509. package/src/scripts/front-page/front-page-support.jsx +0 -30
  510. package/src/scripts/front-page/front-page-tabs.jsx +0 -166
  511. package/src/scripts/front-page/front-page-top-datasets.jsx +0 -203
  512. package/src/scripts/front-page/front-page.jsx +0 -95
  513. package/src/scripts/front-page/participant-count.jsx +0 -25
  514. package/src/scripts/hooks/use-measure.js +0 -15
  515. package/src/scripts/hooks/use-previous.js +0 -7
  516. package/src/scripts/index.jsx +0 -16
  517. package/src/scripts/nav/assets/brand_mark.png +0 -0
  518. package/src/scripts/nav/assets/favicon-upload.png +0 -0
  519. package/src/scripts/nav/assets/logo_app.png +0 -0
  520. package/src/scripts/nav/navbar.jsx +0 -144
  521. package/src/scripts/nav/navbar.navmenu.jsx +0 -106
  522. package/src/scripts/nav/navbar.usermenu.jsx +0 -52
  523. package/src/scripts/pages/citation-page.jsx +0 -43
  524. package/src/scripts/pet/__tests__/__snapshots__/dummy.spec.jsx.snap +0 -70
  525. package/src/scripts/pet/__tests__/dummy.spec.jsx +0 -10
  526. package/src/scripts/pet/dummy.jsx +0 -61
  527. package/src/scripts/refactor_2021/dataset/dataset-pre-refactor-container.tsx +0 -12
  528. package/src/scripts/refactor_2021/dataset/routes/download-dataset.jsx +0 -70
  529. package/src/scripts/refactor_2021/redesign-form.jsx +0 -427
  530. package/src/scripts/routes.tsx +0 -36
  531. package/src/scripts/search/search-input.tsx +0 -42
  532. package/src/scripts/search/search-results.tsx +0 -114
  533. package/src/scripts/styles/capitalized.jsx +0 -6
  534. package/src/scripts/styles/uppercase.jsx +0 -6
  535. package/src/scripts/uploader/__tests__/add-path-to-files.spec.js +0 -29
  536. package/src/scripts/uploader/__tests__/file-upload.spec.js +0 -116
  537. package/src/scripts/uploader/__tests__/upload-disclaimer.spec.jsx +0 -67
  538. package/src/scripts/uploader/__tests__/upload-mutation.spec.js +0 -57
  539. package/src/scripts/uploader/__tests__/uploader.spec.js +0 -31
  540. package/src/scripts/uploader/add-path-to-files.js +0 -19
  541. package/src/scripts/uploader/file-upload.js +0 -88
  542. package/src/scripts/uploader/upload-button.jsx +0 -18
  543. package/src/scripts/uploader/upload-disclaimer.jsx +0 -91
  544. package/src/scripts/uploader/upload-file-status.jsx +0 -20
  545. package/src/scripts/uploader/upload-issues.jsx +0 -131
  546. package/src/scripts/uploader/upload-metadata.jsx +0 -59
  547. package/src/scripts/uploader/upload-mutation.js +0 -111
  548. package/src/scripts/uploader/upload-progress-button.jsx +0 -20
  549. package/src/scripts/uploader/upload-progress-class.js +0 -36
  550. package/src/scripts/uploader/upload-progress.jsx +0 -15
  551. package/src/scripts/uploader/upload-rename.jsx +0 -33
  552. package/src/scripts/uploader/upload-resume.jsx +0 -35
  553. package/src/scripts/uploader/upload-select.jsx +0 -29
  554. package/src/scripts/uploader/upload-status.jsx +0 -23
  555. package/src/scripts/uploader/upload-step.jsx +0 -48
  556. package/src/scripts/uploader/uploader-context.js +0 -6
  557. package/src/scripts/uploader/uploader-location.js +0 -5
  558. package/src/scripts/uploader/uploader-modal.jsx +0 -27
  559. package/src/scripts/uploader/uploader-setup-routes.jsx +0 -52
  560. package/src/scripts/uploader/uploader-status-routes.jsx +0 -30
  561. package/src/scripts/uploader/uploader-view.jsx +0 -45
  562. package/src/scripts/uploader/uploader.jsx +0 -388
  563. package/src/scripts/user/__mocks__/user.store.js +0 -1
  564. package/src/scripts/user/api.jsx +0 -132
  565. package/src/scripts/user/avatar.jsx +0 -40
  566. package/src/scripts/utils/crn.js +0 -15
  567. package/src/scripts/utils/request.js +0 -107
  568. package/src/scripts/utils/user.js +0 -18
  569. package/src/scripts/validation/validation-results.issues.issue.jsx +0 -90
  570. package/src/scripts/validation/validation-results.issues.jsx +0 -79
  571. package/src/scripts/validation/validation-results.jsx +0 -96
@@ -1,388 +0,0 @@
1
- import { apm } from '../apm'
2
- import { toast } from 'react-toastify'
3
- import ToastContent from '../common/partials/toast-content.jsx'
4
- import React from 'react'
5
- import PropTypes from 'prop-types'
6
- import { ApolloConsumer } from '@apollo/client'
7
- import * as gtag from '../utils/gtag'
8
- import UploaderContext from './uploader-context.js'
9
- import FileSelect from '../common/forms/file-select'
10
- import { locationFactory } from './uploader-location.js'
11
- import * as mutation from './upload-mutation.js'
12
- import { datasets, uploads } from '@openneuro/client'
13
- import { withRouter } from 'react-router-dom'
14
- import { uploadFiles } from './file-upload.js'
15
- import { UploadProgress } from './upload-progress-class'
16
- import { addPathToFiles } from './add-path-to-files.js'
17
-
18
- /**
19
- * Stateful uploader workflow and status
20
- *
21
- * Usable from anywhere, so this button sets up a modal and
22
- * virtual router to navigate within it.
23
- */
24
- export class UploadClient extends React.Component {
25
- constructor(props) {
26
- super(props)
27
-
28
- this.state = {
29
- // An upload is processing
30
- uploading: false,
31
- // Which step in the modal
32
- location: locationFactory('/hidden'),
33
- // List of files being uploaded
34
- files: [],
35
- // Files selected, regardless of if they will be uploaded
36
- selectedFiles: {},
37
- // Relabel dataset during upload
38
- name: '',
39
- // Dataset description - null if it doesn't exist
40
- description: null,
41
- progress: 0,
42
- // Resume an existing dataset
43
- resume: null,
44
- // Control if the top level path is trimmed out (good for initial uploads, bad for adding to dataset)
45
- stripRelativePath: true,
46
- // Allow context consumers to change routes
47
- setLocation: this.setLocation,
48
- // Set a dataset to resume upload for
49
- resumeDataset: this.resumeDataset,
50
- // Get files from the browser
51
- selectFiles: this.selectFiles,
52
- // Capture metadata from form
53
- captureMetadata: this.captureMetadata,
54
- // Start an upload
55
- upload: this.upload,
56
- // Upload XHR request
57
- xhr: null,
58
- // Id of the uploaded dataset
59
- datasetId: null,
60
- // Cancel current upload
61
- cancel: this.cancel,
62
- // dataset metadata
63
- metadata: {},
64
- // Track currently uploading files
65
- uploadingFiles: new Set(),
66
- // Track any failed files
67
- failedFiles: new Set(),
68
- // Abort controller for abandoning the upload
69
- abortController: null,
70
- }
71
- }
72
-
73
- /**
74
- * Change to a new step in upload setup
75
- *
76
- * @param {string} path Virtual router path for upload modal
77
- */
78
- setLocation = path => {
79
- gtag.pageview(path)
80
- this.setState({ location: locationFactory(path) })
81
- }
82
-
83
- /**
84
- * Specify a dataset to resume upload for
85
- * @param {string} datasetId
86
- * @param {string} [path] Optional path to prefix all files with
87
- * @param {boolean} [stripRelativePath] Don't strip the first path (useful for adding directories)
88
- */
89
- resumeDataset = (datasetId, path, stripRelativePath) => {
90
- return ({ files }) => {
91
- this.props.client
92
- .query({
93
- query: datasets.getDraftFiles,
94
- variables: { id: datasetId },
95
- })
96
- .then(
97
- ({
98
- data: {
99
- dataset: { draft, metadata },
100
- },
101
- }) => {
102
- const affirmedDefaced = metadata?.affirmedDefaced || null
103
- const affirmedConsent = metadata?.affirmedConsent || null
104
- // Create a new array of files to upload
105
- const filesToUpload = []
106
- // Create hashmap of filename -> size
107
- const existingFiles = draft.files.reduce((existingFiles, f) => {
108
- existingFiles[f.filename] = f.size
109
- return existingFiles
110
- }, {})
111
- for (const newFile of files) {
112
- const newFilePath = newFile.webkitRelativePath.split(/\/(.*)/)[1]
113
- // Skip any existing files
114
- if (existingFiles[newFilePath] !== newFile.size) {
115
- filesToUpload.push(newFile)
116
- }
117
- }
118
- this.setState({
119
- datasetId,
120
- resume: true,
121
- stripRelativePath,
122
- files: addPathToFiles(filesToUpload, path),
123
- selectedFiles: files,
124
- })
125
- this.upload({ affirmedDefaced, affirmedConsent })
126
- },
127
- )
128
- }
129
- }
130
-
131
- /**
132
- * Select the files for upload
133
- * @param {object} event onChange event from multi file select
134
- */
135
- selectFiles = ({ files }) => {
136
- // First get the name from dataset_description.json
137
- return new Promise(resolve => {
138
- const descriptionFile = [...files].find(
139
- f => f.name === 'dataset_description.json',
140
- )
141
- if (!descriptionFile) {
142
- // Use directory name if no dataset_description
143
- resolve(files[0].webkitRelativePath.split('/')[0])
144
- }
145
- const descriptionReader = new FileReader()
146
- descriptionReader.onload = event => {
147
- try {
148
- // Read Name field from dataset_description.json
149
- const description = JSON.parse(event.target.result.toString())
150
- // Save description to state for writing later
151
- this.setState({ description })
152
- resolve(description.Name)
153
- } catch (e) {
154
- // Fallback to directory name if JSON parse failed
155
- resolve(files[0].webkitRelativePath.split('/')[0])
156
- }
157
- }
158
- descriptionReader.readAsText(descriptionFile)
159
- }).then(name => {
160
- if (files.length > 0) {
161
- this.setState({
162
- files,
163
- selectedFiles: files,
164
- name,
165
- })
166
- this.setLocation('/upload/issues')
167
- } else {
168
- throw new Error('No files selected')
169
- }
170
- })
171
- }
172
-
173
- captureMetadata = metadata => {
174
- this.setState({
175
- metadata,
176
- })
177
- }
178
-
179
- uploadMetadata = () =>
180
- mutation.submitMetadata(this.props.client)(
181
- this.state.datasetId,
182
- this.state.metadata,
183
- )
184
-
185
- upload = ({ affirmedDefaced, affirmedConsent }) => {
186
- // Track the start of uploads
187
- gtag.event({
188
- category: 'Upload',
189
- action: 'Started web upload',
190
- label: this.state.datasetId,
191
- })
192
- this.setState({
193
- uploading: true,
194
- abortController: new AbortController(),
195
- })
196
- this.setLocation('/hidden')
197
- if (this.state.resume && this.state.datasetId) {
198
- // Just add files since this is an existing dataset
199
- this._addFiles()
200
- } else {
201
- // Create dataset and then add files
202
- mutation
203
- .createDataset(this.props.client)({
204
- affirmedDefaced,
205
- affirmedConsent,
206
- })
207
- .then(datasetId => {
208
- // Note chain to this._addFiles
209
- this.setState({ datasetId }, () => {
210
- this.uploadMetadata()
211
- this._addFiles()
212
- })
213
- })
214
- .catch(error => {
215
- apm.captureError(error)
216
- toast.error(
217
- <ToastContent
218
- title="Dataset creation failed"
219
- body="Please check your connection"
220
- />,
221
- { autoClose: false },
222
- )
223
- this.setState({
224
- error,
225
- uploading: false,
226
- })
227
- this.setLocation('/hidden')
228
- })
229
- }
230
- }
231
-
232
- /**
233
- * Check for CHANGES file and add if it does not exist
234
- */
235
- _includeChanges() {
236
- const files = [...this.state.files]
237
- // Determine if the files list has a CHANGES file already
238
- const hasChanges = files.some(f => f.name === 'CHANGES')
239
-
240
- // Do nothing if the file already exists
241
- if (hasChanges) return files
242
-
243
- // Construct the initial CHANGES file and add to the files array
244
- const initialChangesFile = new Blob([], {
245
- type: 'text/plain',
246
- })
247
- initialChangesFile.name = 'CHANGES'
248
- initialChangesFile.webkitRelativePath = '/CHANGES'
249
- files.push(initialChangesFile)
250
- return files
251
- }
252
-
253
- /**
254
- * Do the actual upload
255
- */
256
- async _addFiles() {
257
- // Uploads the version of files with dataset_description formatted and Name updated
258
- // Adds a CHANGES file if it is not present
259
- const filesToUpload = this.state.resume
260
- ? this.state.files
261
- : this._includeChanges()
262
-
263
- // Call prepare upload to find the bucket needed and endpoint
264
- const {
265
- data: {
266
- prepareUpload: { id: uploadId, endpoint, token },
267
- },
268
- } = await mutation.prepareUpload(this.props.client)({
269
- datasetId: this.state.datasetId,
270
- uploadId: uploads.hashFileList(this.state.datasetId, filesToUpload),
271
- })
272
-
273
- try {
274
- await uploadFiles({
275
- uploadId,
276
- datasetId: this.state.datasetId,
277
- endpoint,
278
- filesToUpload,
279
- token,
280
- uploadProgress: new UploadProgress(
281
- this.uploadProgress,
282
- filesToUpload.length,
283
- ),
284
- abortController: this.state.abortController,
285
- stripRelativePath: this.state.stripRelativePath,
286
- })
287
- if (!this.state.abortController.signal.aborted) {
288
- await mutation.finishUpload(this.props.client)(uploadId)
289
- this.setState({ uploading: false })
290
- this.uploadCompleteAction()
291
- }
292
- } catch (error) {
293
- apm.captureError(error)
294
- const toastId = toast.error(
295
- <ToastContent
296
- title="Dataset upload failed"
297
- body="Please check your connection">
298
- <FileSelect
299
- onChange={event => {
300
- toast.dismiss(toastId)
301
- this.resumeDataset(this.state.datasetId)(event)
302
- }}
303
- resume
304
- />
305
- </ToastContent>,
306
- { autoClose: false },
307
- )
308
- this.setState({
309
- error,
310
- uploading: false,
311
- })
312
- this.setLocation('/hidden')
313
- if (this.state.xhr) {
314
- try {
315
- this.state.xhr.abort()
316
- } catch (e) {
317
- apm.captureError(e)
318
- }
319
- }
320
- }
321
- }
322
-
323
- uploadCompleteAction = () => {
324
- // Record upload finished successfully with Google Analytics
325
- gtag.event({
326
- category: 'Upload',
327
- action: 'Finished web upload',
328
- label: this.state.datasetId,
329
- })
330
- const datasetURL = `/datasets/${this.state.datasetId}`
331
- if (this.state.location.pathname !== locationFactory('/hidden').pathname) {
332
- this.props.history.push(datasetURL)
333
- this.setLocation('/hidden')
334
- } else {
335
- toast.success(
336
- <ToastContent
337
- title="Upload complete"
338
- body="Dataset successfully uploaded">
339
- <a href={datasetURL}>Click here to browse your dataset.</a>
340
- </ToastContent>,
341
- { autoClose: false },
342
- )
343
- }
344
- }
345
-
346
- uploadProgress = state => {
347
- this.setState(state)
348
- }
349
-
350
- cancel = () => {
351
- this.state.abortController.abort()
352
- this.setState({ uploading: false, progress: 0 })
353
- }
354
-
355
- render() {
356
- return (
357
- <UploaderContext.Provider value={this.state}>
358
- {this.props.children}
359
- </UploaderContext.Provider>
360
- )
361
- }
362
- }
363
-
364
- UploadClient.propTypes = {
365
- client: PropTypes.object,
366
- history: PropTypes.object,
367
- children: PropTypes.element,
368
- }
369
-
370
- const UploadClientWithRouter = withRouter(UploadClient)
371
-
372
- const Uploader = ({ children }) => (
373
- <ApolloConsumer>
374
- {client => (
375
- <div className="uploader">
376
- <UploadClientWithRouter client={client}>
377
- {children}
378
- </UploadClientWithRouter>
379
- </div>
380
- )}
381
- </ApolloConsumer>
382
- )
383
-
384
- Uploader.propTypes = {
385
- children: PropTypes.element,
386
- }
387
-
388
- export default Uploader
@@ -1 +0,0 @@
1
- export default {}
@@ -1,132 +0,0 @@
1
- import React from 'react'
2
- import Spinner from '../common/partials/spinner.jsx'
3
- import { CopyToClipboard } from 'react-copy-to-clipboard'
4
- import crn from '../utils/crn.js'
5
- import Helmet from 'react-helmet'
6
- import { pageTitle } from '../resources/strings.js'
7
-
8
- /**
9
- * Create API Key
10
- *
11
- * Given the current user, creates an api key
12
- * for use with the standalone CLI
13
- */
14
- const createAPIKey = () => {
15
- return crn.createAPIKey().then(res => (res && res.body ? res.body.key : null))
16
- }
17
-
18
- class APIKeyGen extends React.Component {
19
- constructor(props) {
20
- super(props)
21
- this.requestKey = this._requestKey.bind(this)
22
- this.state = {
23
- loading: false,
24
- key: null,
25
- }
26
- }
27
-
28
- _requestKey() {
29
- this.setState({ loading: true })
30
- createAPIKey()
31
- .then(key => {
32
- this.setState({ key, loading: false })
33
- })
34
- .catch(() => {
35
- this.setState({ loading: false })
36
- })
37
- }
38
-
39
- _requestButton() {
40
- return (
41
- <button
42
- className="btn btn-lg btn-primary"
43
- onClick={this.requestKey.bind(this)}>
44
- GENERATE NEW API KEY
45
- </button>
46
- )
47
- }
48
-
49
- _loadingSpinner() {
50
- if (this.state.loading) {
51
- return <Spinner active={true} />
52
- } else {
53
- return null
54
- }
55
- }
56
-
57
- _key() {
58
- const content = (
59
- <div className="api-key-div">
60
- <div className="api-key">{this.state.key}</div>
61
- <div className="copy-key">
62
- <CopyToClipboard
63
- text={this.state.key}
64
- onCopy={this._onCopy.bind(this)}>
65
- <span className="copy-key">
66
- <i className="fa fa-link" aria-hidden="true" />{' '}
67
- {this._copyNotification()}
68
- </span>
69
- </CopyToClipboard>
70
- </div>
71
- </div>
72
- )
73
- if (this.state.key) {
74
- return content
75
- } else {
76
- return null
77
- }
78
- }
79
- _copyNotification() {
80
- const copyClass = this.state.linkCopied
81
- ? 'copy-notification-active copy-notification-copied'
82
- : 'copy-notification-active'
83
- const copyText = this.state.linkCopied ? 'Copied!' : 'Copy key to clipboard'
84
- return (
85
- <span>
86
- <span className={copyClass}>{copyText}</span>
87
- </span>
88
- )
89
- }
90
-
91
- _onCopy() {
92
- this.setState({ linkCopied: true })
93
- setTimeout(() => {
94
- this.setState({ linkCopied: false })
95
- }, 3000)
96
- }
97
-
98
- render() {
99
- const helperText = this.state.key
100
- ? 'Your API Key:'
101
- : 'Click the button below to generate an API key'
102
- return (
103
- <>
104
- <Helmet>
105
- <title>Generate API key for openneuro-cli - {pageTitle}</title>
106
- </Helmet>
107
- <div className="container api">
108
- <div className="panel">
109
- <div className="panel-heading">CLI API Key Generator</div>
110
- <div className="panel-body explanation">
111
- Users that wish to use the CLI uploader will be required to
112
- authenticate their requests with an API key. Please store your API
113
- key in a safe place. If you lose your key, you can obtain a new
114
- one on this page. Once a new key is obtained, the previous key
115
- will become invalid.
116
- </div>
117
- </div>
118
- <div className="panel">
119
- <div className="panel-heading">{helperText}</div>
120
- <div className="panel-body">
121
- {this._loadingSpinner()}
122
- {this._key()}
123
- {this._requestButton()}
124
- </div>
125
- </div>
126
- </div>
127
- </>
128
- )
129
- }
130
- }
131
-
132
- export default APIKeyGen
@@ -1,40 +0,0 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { generateGravatarUrl } from '../utils/user.js'
4
-
5
- class Avatar extends React.Component {
6
- constructor(props) {
7
- super(props)
8
- }
9
-
10
- render() {
11
- const profile = this.props.profile
12
-
13
- if (!profile) {
14
- return null
15
- }
16
- const imageUrl = generateGravatarUrl(profile)
17
- let thumbnail
18
- if (imageUrl) {
19
- const username = profile && profile.name ? profile.name : null
20
- thumbnail = (
21
- <img src={imageUrl} alt={username} className="user-img-thumb" />
22
- )
23
- } else {
24
- const firstLetter =
25
- profile && profile.name ? profile.name.slice(0, 1) : null
26
- thumbnail = (
27
- <div className="user-generic-thumb">
28
- <div className="user-generic-thumb-letter">{firstLetter}</div>
29
- </div>
30
- )
31
- }
32
- return thumbnail
33
- }
34
- }
35
-
36
- Avatar.propTypes = {
37
- profile: PropTypes.object,
38
- }
39
-
40
- export default Avatar
@@ -1,15 +0,0 @@
1
- import request from './request'
2
- import { config } from '../config'
3
-
4
- /**
5
- * CRN
6
- *
7
- * A library for interacting with the CRN server side
8
- * application.
9
- */
10
- export default {
11
- // API Key ----------------------------------------------------------------------
12
- createAPIKey() {
13
- return request.post(config.api + 'keygen', {})
14
- },
15
- }
@@ -1,107 +0,0 @@
1
- import request from 'superagent'
2
-
3
- /*
4
- * Upload retries limit
5
- */
6
- const maxRetries = 3
7
-
8
- /**
9
- * Normalize Options
10
- *
11
- * Takes a request options object and
12
- * normalizes it so requests won't fail.
13
- */
14
- function normalizeOptions(options) {
15
- options = options ? options : {}
16
- if (!options.headers) {
17
- options.headers = {}
18
- }
19
- if (!options.query) {
20
- options.query = {}
21
- }
22
- if (!options.hasOwnProperty('auth')) {
23
- options.auth = true
24
- }
25
- return options
26
- }
27
-
28
- /**
29
- * Handle Request
30
- *
31
- * A generic request handler used to intercept
32
- * requests before they request out. Ensures
33
- * access_token isn't expired sets it as the
34
- * Authorization header.
35
- *
36
- * Available options
37
- * - headers: An object with keys set to the header name
38
- * and values set to the corresponding header value.
39
- * - query: An object with keys set to url query parameters
40
- * and values set to the corresponding query values.
41
- * - body: A http request body.
42
- * - auth: A boolean determining whether the access token
43
- * should be supplied with the request.
44
- * - snapshot: A boolean that will add a 'snapshots' url
45
- * param to scitran requests.
46
- */
47
- function handleRequest(url, options, callback) {
48
- // normalize options to play nice with superagent requests
49
- options = normalizeOptions(options)
50
-
51
- return callback(url, options)
52
- }
53
-
54
- /**
55
- * Request
56
- *
57
- * A wrapper for the superagent request library.
58
- * Provides a place for global request settings
59
- * and response handling.
60
- */
61
- const Request = {
62
- get(url, options) {
63
- return handleRequest(url, options, (url, options) => {
64
- return request.get(url).set(options.headers).query(options.query)
65
- })
66
- },
67
-
68
- post(url, options) {
69
- return handleRequest(url, options, (url, options) => {
70
- return request
71
- .post(url)
72
- .set(options.headers)
73
- .query(options.query)
74
- .send(options.body)
75
- })
76
- },
77
-
78
- put(url, options) {
79
- return handleRequest(url, options, (url, options) => {
80
- return request
81
- .put(url)
82
- .set(options.headers)
83
- .query(options.query)
84
- .send(options.body)
85
- })
86
- },
87
-
88
- del(url, options) {
89
- return handleRequest(url, options, (url, options) => {
90
- return request.del(url).set(options.headers).query(options.query)
91
- })
92
- },
93
-
94
- upload(url, options) {
95
- return handleRequest(url, options, (url, options) => {
96
- return request
97
- .post(url)
98
- .query(options.query)
99
- .set(options.headers)
100
- .field('tags', options.fields.tags)
101
- .attach('file', options.fields.file, options.fields.name)
102
- .retry(maxRetries)
103
- })
104
- },
105
- }
106
-
107
- export default Request
@@ -1,18 +0,0 @@
1
- import md5 from 'md5'
2
-
3
- /**
4
- * Generate Gravatar Url
5
- *
6
- * Given a user profile, generate a gravatar identicon url
7
- * to use as source for an image
8
- */
9
- export function generateGravatarUrl(userProfile) {
10
- const email = userProfile.email
11
- if (email) {
12
- const hash = md5(email)
13
- const gravatarUrl = `https://www.gravatar.com/avatar/${hash}?s=200&d=identicon`
14
- return gravatarUrl
15
- } else {
16
- return null
17
- }
18
- }