@openneuro/app 4.1.2 → 4.2.3

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 (568) 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-routes.jsx +14 -4
  16. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-command-line.spec.jsx.snap +0 -0
  17. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/download-link.spec.jsx.snap +645 -105
  18. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/__snapshots__/shell-example.spec.jsx.snap +6 -3
  19. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-command-line.spec.jsx +0 -0
  20. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-link.spec.jsx +0 -0
  21. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/download-native.spec.js +0 -0
  22. package/src/scripts/{datalad → refactor_2021/dataset}/download/__tests__/shell-example.spec.jsx +0 -0
  23. package/src/scripts/refactor_2021/dataset/download/download-datalad.jsx +45 -10
  24. package/src/scripts/refactor_2021/dataset/draft-container.tsx +13 -22
  25. package/src/scripts/refactor_2021/dataset/files/file-tree.jsx +3 -2
  26. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/cancel-button.spec.tsx.snap +10 -0
  27. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-button.spec.tsx.snap +10 -0
  28. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +24 -0
  29. package/src/scripts/refactor_2021/dataset/fragments/__tests__/__snapshots__/save-button.spec.tsx.snap +10 -0
  30. 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
  31. package/src/scripts/{datalad/fragments/__tests__/cancel-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/cancel-button.spec.tsx} +2 -2
  32. package/src/scripts/{datalad → refactor_2021/dataset}/fragments/__tests__/dataset-citation.spec.jsx +0 -0
  33. package/src/scripts/{datalad/fragments/__tests__/edit-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/edit-button.spec.tsx} +2 -2
  34. package/src/scripts/refactor_2021/dataset/fragments/__tests__/edit-list.spec.jsx +27 -0
  35. package/src/scripts/{datalad/fragments/__tests__/save-button.spec.jsx → refactor_2021/dataset/fragments/__tests__/save-button.spec.tsx} +2 -2
  36. package/src/scripts/{datalad/fragments/__tests__/select-input.spec.jsx → refactor_2021/dataset/fragments/__tests__/select-input.spec.tsx} +0 -0
  37. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +50 -0
  38. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/__snapshots__/description.spec.jsx.snap +0 -0
  39. package/src/scripts/refactor_2021/dataset/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +27 -0
  40. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/cache-id.spec.js +0 -0
  41. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/delete.spec.jsx +8 -8
  42. package/src/scripts/{datalad → refactor_2021/dataset}/mutations/__tests__/description.spec.jsx +0 -0
  43. package/src/scripts/{datalad/mutations/__tests__/remove-permissions.spec.jsx → refactor_2021/dataset/mutations/__tests__/remove-permissions.spec.tsx} +1 -1
  44. package/src/scripts/refactor_2021/dataset/mutations/__tests__/update-permissions.spec.jsx +28 -0
  45. package/src/scripts/refactor_2021/dataset/mutations/update-file.jsx +2 -2
  46. package/src/scripts/refactor_2021/dataset/routes/download-dataset.tsx +76 -0
  47. package/src/scripts/refactor_2021/dataset/snapshot-container.tsx +4 -2
  48. package/src/scripts/refactor_2021/routes.tsx +1 -1
  49. package/src/scripts/refactor_2021/search/__tests__/search-params-ctx.spec.tsx +20 -0
  50. package/src/scripts/refactor_2021/search/initial-search-params.tsx +7 -7
  51. package/src/scripts/refactor_2021/search/inputs/__tests__/sort-by-select.spec.tsx +83 -0
  52. package/src/scripts/refactor_2021/search/inputs/index.ts +2 -2
  53. package/src/scripts/refactor_2021/search/inputs/{gender-radios.tsx → sex-radios.tsx} +10 -10
  54. package/src/scripts/refactor_2021/search/inputs/sort-by-select.tsx +38 -8
  55. package/src/scripts/refactor_2021/search/search-container.tsx +3 -3
  56. package/src/scripts/refactor_2021/search/search-params-ctx.tsx +3 -3
  57. package/src/scripts/refactor_2021/search/use-search-results.tsx +4 -3
  58. package/src/scripts/refactor_2021/user/api.jsx +11 -6
  59. package/src/server.jsx +1 -5
  60. package/src/ssr.ts +0 -1
  61. package/src/sass/_bootstrap-compass.scss +0 -9
  62. package/src/sass/_bootstrap-mincer.scss +0 -19
  63. package/src/sass/_bootstrap-sprockets.scss +0 -9
  64. package/src/sass/_bootstrap.scss +0 -50
  65. package/src/sass/animate/_attention-seekers/_bounce.scss +0 -15
  66. package/src/sass/animate/_attention-seekers/_flash.scss +0 -14
  67. package/src/sass/animate/_attention-seekers/_pulse.scss +0 -17
  68. package/src/sass/animate/_attention-seekers/_rubberBand.scss +0 -19
  69. package/src/sass/animate/_attention-seekers/_shake.scss +0 -15
  70. package/src/sass/animate/_attention-seekers/_swing.scss +0 -19
  71. package/src/sass/animate/_attention-seekers/_tada.scss +0 -17
  72. package/src/sass/animate/_attention-seekers/_wobble.scss +0 -21
  73. package/src/sass/animate/_attention-seekers/attention-seekers.scss +0 -12
  74. package/src/sass/animate/_bouncing-entrances/_bounceIn.scss +0 -26
  75. package/src/sass/animate/_bouncing-entrances/_bounceInDown.scss +0 -26
  76. package/src/sass/animate/_bouncing-entrances/_bounceInLeft.scss +0 -26
  77. package/src/sass/animate/_bouncing-entrances/_bounceInRight.scss +0 -26
  78. package/src/sass/animate/_bouncing-entrances/_bounceInUp.scss +0 -26
  79. package/src/sass/animate/_bouncing-entrances/bouncing-entrances.scss +0 -9
  80. package/src/sass/animate/_bouncing-exits/_bounceOut.scss +0 -26
  81. package/src/sass/animate/_bouncing-exits/_bounceOutDown.scss +0 -23
  82. package/src/sass/animate/_bouncing-exits/_bounceOutLeft.scss +0 -23
  83. package/src/sass/animate/_bouncing-exits/_bounceOutRight.scss +0 -23
  84. package/src/sass/animate/_bouncing-exits/_bounceOutUp.scss +0 -23
  85. package/src/sass/animate/_bouncing-exits/bouncing-exits.scss +0 -4
  86. package/src/sass/animate/_fading-entrances/_fadeIn.scss +0 -14
  87. package/src/sass/animate/_fading-entrances/_fadeInDown.scss +0 -20
  88. package/src/sass/animate/_fading-entrances/_fadeInDownBig.scss +0 -20
  89. package/src/sass/animate/_fading-entrances/_fadeInLeft.scss +0 -20
  90. package/src/sass/animate/_fading-entrances/_fadeInLeftBig.scss +0 -20
  91. package/src/sass/animate/_fading-entrances/_fadeInRight.scss +0 -20
  92. package/src/sass/animate/_fading-entrances/_fadeInRightBig.scss +0 -20
  93. package/src/sass/animate/_fading-entrances/_fadeInUp.scss +0 -19
  94. package/src/sass/animate/_fading-entrances/_fadeInUpBig.scss +0 -20
  95. package/src/sass/animate/_fading-entrances/fading-entrances.scss +0 -5
  96. package/src/sass/animate/_fading-exits/_fadeOut.scss +0 -14
  97. package/src/sass/animate/_fading-exits/_fadeOutDown.scss +0 -20
  98. package/src/sass/animate/_fading-exits/_fadeOutDownBig.scss +0 -20
  99. package/src/sass/animate/_fading-exits/_fadeOutLeft.scss +0 -20
  100. package/src/sass/animate/_fading-exits/_fadeOutLeftBig.scss +0 -20
  101. package/src/sass/animate/_fading-exits/_fadeOutRight.scss +0 -20
  102. package/src/sass/animate/_fading-exits/_fadeOutRightBig.scss +0 -20
  103. package/src/sass/animate/_fading-exits/_fadeOutUp.scss +0 -20
  104. package/src/sass/animate/_fading-exits/_fadeOutUpBig.scss +0 -20
  105. package/src/sass/animate/_fading-exits/fading-exits.scss +0 -5
  106. package/src/sass/animate/_flippers/_flip.scss +0 -33
  107. package/src/sass/animate/_flippers/_flipInX.scss +0 -26
  108. package/src/sass/animate/_flippers/_flipInY.scss +0 -26
  109. package/src/sass/animate/_flippers/_flipOutX.scss +0 -20
  110. package/src/sass/animate/_flippers/_flipOutY.scss +0 -20
  111. package/src/sass/animate/_flippers/flippers.scss +0 -8
  112. package/src/sass/animate/_lightspeed/_lightSpeedIn.scss +0 -29
  113. package/src/sass/animate/_lightspeed/_lightSpeedOut.scss +0 -21
  114. package/src/sass/animate/_lightspeed/lightspeed.scss +0 -3
  115. package/src/sass/animate/_properties.scss +0 -119
  116. package/src/sass/animate/_rotating-entrances/_rotateIn.scss +0 -22
  117. package/src/sass/animate/_rotating-entrances/_rotateInDownLeft.scss +0 -22
  118. package/src/sass/animate/_rotating-entrances/_rotateInDownRight.scss +0 -22
  119. package/src/sass/animate/_rotating-entrances/_rotateInUpLeft.scss +0 -22
  120. package/src/sass/animate/_rotating-entrances/_rotateInUpRight.scss +0 -22
  121. package/src/sass/animate/_rotating-entrances/rotating-entrances.scss +0 -8
  122. package/src/sass/animate/_rotating-exits/_rotateOut.scss +0 -22
  123. package/src/sass/animate/_rotating-exits/_rotateOutDownLeft.scss +0 -22
  124. package/src/sass/animate/_rotating-exits/_rotateOutDownRight.scss +0 -22
  125. package/src/sass/animate/_rotating-exits/_rotateOutUpLeft.scss +0 -22
  126. package/src/sass/animate/_rotating-exits/_rotateOutUpRight.scss +0 -22
  127. package/src/sass/animate/_rotating-exits/rotating-exits.scss +0 -8
  128. package/src/sass/animate/_sliding-entrances/_slideInDown.scss +0 -19
  129. package/src/sass/animate/_sliding-entrances/_slideInLeft.scss +0 -19
  130. package/src/sass/animate/_sliding-entrances/_slideInRight.scss +0 -42
  131. package/src/sass/animate/_sliding-entrances/_slideInUp.scss +0 -19
  132. package/src/sass/animate/_sliding-entrances/sliding-entrances.scss +0 -7
  133. package/src/sass/animate/_sliding-exits/_slideOutDown.scss +0 -19
  134. package/src/sass/animate/_sliding-exits/_slideOutLeft.scss +0 -19
  135. package/src/sass/animate/_sliding-exits/_slideOutRight.scss +0 -19
  136. package/src/sass/animate/_sliding-exits/_slideOutUp.scss +0 -19
  137. package/src/sass/animate/_sliding-exits/sliding-exits.scss +0 -7
  138. package/src/sass/animate/_specials/_hinge.scss +0 -37
  139. package/src/sass/animate/_specials/_rollIn.scss +0 -20
  140. package/src/sass/animate/_specials/_rollOut.scss +0 -22
  141. package/src/sass/animate/_specials/specials.scss +0 -6
  142. package/src/sass/animate/_zooming-entrances/_zoomIn.scss +0 -19
  143. package/src/sass/animate/_zooming-entrances/_zoomInDown.scss +0 -22
  144. package/src/sass/animate/_zooming-entrances/_zoomInLeft.scss +0 -22
  145. package/src/sass/animate/_zooming-entrances/_zoomInRight.scss +0 -22
  146. package/src/sass/animate/_zooming-entrances/_zoomInUp.scss +0 -22
  147. package/src/sass/animate/_zooming-entrances/zooming-entrances.scss +0 -4
  148. package/src/sass/animate/_zooming-exits/_zoomOut.scss +0 -22
  149. package/src/sass/animate/_zooming-exits/_zoomOutDown.scss +0 -23
  150. package/src/sass/animate/_zooming-exits/_zoomOutLeft.scss +0 -21
  151. package/src/sass/animate/_zooming-exits/_zoomOutRight.scss +0 -21
  152. package/src/sass/animate/_zooming-exits/_zoomOutUp.scss +0 -23
  153. package/src/sass/animate/_zooming-exits/zooming-exits.scss +0 -4
  154. package/src/sass/animate/animate.css +0 -7497
  155. package/src/sass/animate/animate.css.map +0 -7
  156. package/src/sass/animate/animate.min.css +0 -2
  157. package/src/sass/animate/animate.min.css.map +0 -7
  158. package/src/sass/animate/animate.scss +0 -30
  159. package/src/sass/animate/bower.json +0 -22
  160. package/src/sass/bootstrap/_alerts.scss +0 -70
  161. package/src/sass/bootstrap/_badges.scss +0 -68
  162. package/src/sass/bootstrap/_breadcrumbs.scss +0 -26
  163. package/src/sass/bootstrap/_button-groups.scss +0 -243
  164. package/src/sass/bootstrap/_buttons.scss +0 -160
  165. package/src/sass/bootstrap/_carousel.scss +0 -269
  166. package/src/sass/bootstrap/_close.scss +0 -36
  167. package/src/sass/bootstrap/_code.scss +0 -69
  168. package/src/sass/bootstrap/_component-animations.scss +0 -37
  169. package/src/sass/bootstrap/_dropdowns.scss +0 -223
  170. package/src/sass/bootstrap/_forms.scss +0 -613
  171. package/src/sass/bootstrap/_grid.scss +0 -84
  172. package/src/sass/bootstrap/_input-groups.scss +0 -166
  173. package/src/sass/bootstrap/_jumbotron.scss +0 -50
  174. package/src/sass/bootstrap/_labels.scss +0 -66
  175. package/src/sass/bootstrap/_list-group.scss +0 -124
  176. package/src/sass/bootstrap/_media.scss +0 -61
  177. package/src/sass/bootstrap/_mixins.scss +0 -39
  178. package/src/sass/bootstrap/_modals.scss +0 -150
  179. package/src/sass/bootstrap/_navbar.scss +0 -647
  180. package/src/sass/bootstrap/_navs.scss +0 -243
  181. package/src/sass/bootstrap/_normalize.scss +0 -427
  182. package/src/sass/bootstrap/_pager.scss +0 -54
  183. package/src/sass/bootstrap/_pagination.scss +0 -88
  184. package/src/sass/bootstrap/_panels.scss +0 -265
  185. package/src/sass/bootstrap/_popovers.scss +0 -135
  186. package/src/sass/bootstrap/_print.scss +0 -107
  187. package/src/sass/bootstrap/_progress-bars.scss +0 -87
  188. package/src/sass/bootstrap/_responsive-embed.scss +0 -35
  189. package/src/sass/bootstrap/_responsive-utilities.scss +0 -177
  190. package/src/sass/bootstrap/_scaffolding.scss +0 -162
  191. package/src/sass/bootstrap/_tables.scss +0 -234
  192. package/src/sass/bootstrap/_theme.scss +0 -273
  193. package/src/sass/bootstrap/_thumbnails.scss +0 -38
  194. package/src/sass/bootstrap/_tooltip.scss +0 -102
  195. package/src/sass/bootstrap/_type.scss +0 -298
  196. package/src/sass/bootstrap/_utilities.scss +0 -55
  197. package/src/sass/bootstrap/_variables.scss +0 -866
  198. package/src/sass/bootstrap/_wells.scss +0 -29
  199. package/src/sass/bootstrap/float-label.scss +0 -70
  200. package/src/sass/bootstrap/mixins/_alerts.scss +0 -14
  201. package/src/sass/bootstrap/mixins/_background-variant.scss +0 -11
  202. package/src/sass/bootstrap/mixins/_border-radius.scss +0 -18
  203. package/src/sass/bootstrap/mixins/_buttons.scss +0 -52
  204. package/src/sass/bootstrap/mixins/_center-block.scss +0 -7
  205. package/src/sass/bootstrap/mixins/_clearfix.scss +0 -22
  206. package/src/sass/bootstrap/mixins/_forms.scss +0 -88
  207. package/src/sass/bootstrap/mixins/_gradients.scss +0 -58
  208. package/src/sass/bootstrap/mixins/_grid-framework.scss +0 -81
  209. package/src/sass/bootstrap/mixins/_grid.scss +0 -122
  210. package/src/sass/bootstrap/mixins/_hide-text.scss +0 -21
  211. package/src/sass/bootstrap/mixins/_image.scss +0 -33
  212. package/src/sass/bootstrap/mixins/_labels.scss +0 -12
  213. package/src/sass/bootstrap/mixins/_list-group.scss +0 -31
  214. package/src/sass/bootstrap/mixins/_nav-divider.scss +0 -10
  215. package/src/sass/bootstrap/mixins/_nav-vertical-align.scss +0 -9
  216. package/src/sass/bootstrap/mixins/_opacity.scss +0 -8
  217. package/src/sass/bootstrap/mixins/_pagination.scss +0 -23
  218. package/src/sass/bootstrap/mixins/_panels.scss +0 -24
  219. package/src/sass/bootstrap/mixins/_progress-bar.scss +0 -10
  220. package/src/sass/bootstrap/mixins/_reset-filter.scss +0 -8
  221. package/src/sass/bootstrap/mixins/_resize.scss +0 -6
  222. package/src/sass/bootstrap/mixins/_responsive-visibility.scss +0 -21
  223. package/src/sass/bootstrap/mixins/_size.scss +0 -10
  224. package/src/sass/bootstrap/mixins/_tab-focus.scss +0 -9
  225. package/src/sass/bootstrap/mixins/_table-row.scss +0 -28
  226. package/src/sass/bootstrap/mixins/_text-emphasis.scss +0 -11
  227. package/src/sass/bootstrap/mixins/_text-overflow.scss +0 -8
  228. package/src/sass/bootstrap/mixins/_vendor-prefixes.scss +0 -222
  229. package/src/sass/crn_app/_admin.admin.scss +0 -205
  230. package/src/sass/crn_app/_admin.graphs.scss +0 -51
  231. package/src/sass/crn_app/_admin.tools.scss +0 -24
  232. package/src/sass/crn_app/_api.scss +0 -65
  233. package/src/sass/crn_app/_bootstrap.overrides.scss +0 -54
  234. package/src/sass/crn_app/_colors.scss +0 -88
  235. package/src/sass/crn_app/_common.click-to-edit.scss +0 -187
  236. package/src/sass/crn_app/_common.modals.scss +0 -686
  237. package/src/sass/crn_app/_common.pagination.scss +0 -41
  238. package/src/sass/crn_app/_common.papaya.scss +0 -348
  239. package/src/sass/crn_app/_common.progress-bar.scss +0 -26
  240. package/src/sass/crn_app/_common.spinner.scss +0 -63
  241. package/src/sass/crn_app/_common.status.scss +0 -103
  242. package/src/sass/crn_app/_common.tooltip.scss +0 -22
  243. package/src/sass/crn_app/_common.typeahead.scss +0 -31
  244. package/src/sass/crn_app/_common.variables.scss +0 -16
  245. package/src/sass/crn_app/_dashboard.datasets.scss +0 -588
  246. package/src/sass/crn_app/_dataset.comments.scss +0 -201
  247. package/src/sass/crn_app/_dataset.dataset.scss +0 -161
  248. package/src/sass/crn_app/_dataset.file-tree.scss +0 -277
  249. package/src/sass/crn_app/_dataset.jobs.scss +0 -701
  250. package/src/sass/crn_app/_dataset.sidebar.scss +0 -265
  251. package/src/sass/crn_app/_dataset.tools.scss +0 -118
  252. package/src/sass/crn_app/_elements-wrappers.scss +0 -870
  253. package/src/sass/crn_app/_faq.scss +0 -37
  254. package/src/sass/crn_app/_frontPage.scss +0 -569
  255. package/src/sass/crn_app/_nav.navbar.scss +0 -387
  256. package/src/sass/crn_app/_theme.scss +0 -87
  257. package/src/sass/crn_app/_upload.upload.scss +0 -393
  258. package/src/sass/crn_app/_upload.validation.scss +0 -210
  259. package/src/sass/draft/draft.scss +0 -11
  260. package/src/sass/draft/rich-editor.scss +0 -73
  261. package/src/sass/font-awesome/_animated.scss +0 -34
  262. package/src/sass/font-awesome/_bordered-pulled.scss +0 -25
  263. package/src/sass/font-awesome/_core.scss +0 -12
  264. package/src/sass/font-awesome/_fixed-width.scss +0 -6
  265. package/src/sass/font-awesome/_font-awesome.scss +0 -17
  266. package/src/sass/font-awesome/_icons.scss +0 -697
  267. package/src/sass/font-awesome/_larger.scss +0 -13
  268. package/src/sass/font-awesome/_list.scss +0 -19
  269. package/src/sass/font-awesome/_mixins.scss +0 -26
  270. package/src/sass/font-awesome/_path.scss +0 -15
  271. package/src/sass/font-awesome/_rotated-flipped.scss +0 -20
  272. package/src/sass/font-awesome/_stacked.scss +0 -20
  273. package/src/sass/font-awesome/_variables.scss +0 -713
  274. package/src/sass/main.scss +0 -317
  275. package/src/sass/pre-refactor-with-wrapper-main.scss +0 -1549
  276. package/src/scripts/admin/__tests__/__snapshots__/exports.spec.jsx.snap +0 -112
  277. package/src/scripts/admin/__tests__/exports.spec.jsx +0 -15
  278. package/src/scripts/admin/__tests__/users.spec.jsx +0 -15
  279. package/src/scripts/admin/admin.jsx +0 -53
  280. package/src/scripts/admin/flagged-files.jsx +0 -178
  281. package/src/scripts/admin/user-fragment.ts +0 -14
  282. package/src/scripts/admin/user-tools.tsx +0 -83
  283. package/src/scripts/admin/users.jsx +0 -224
  284. package/src/scripts/authentication/admin-user.jsx +0 -23
  285. package/src/scripts/authentication/buttons.jsx +0 -26
  286. package/src/scripts/authentication/globus-button.jsx +0 -39
  287. package/src/scripts/authentication/google-button.jsx +0 -32
  288. package/src/scripts/authentication/logged-in.jsx +0 -12
  289. package/src/scripts/authentication/logged-out.jsx +0 -12
  290. package/src/scripts/authentication/loginCheck.js +0 -7
  291. package/src/scripts/authentication/orcid-button.jsx +0 -32
  292. package/src/scripts/authentication/withProfile.jsx +0 -22
  293. package/src/scripts/classic.tsx +0 -18
  294. package/src/scripts/common/forms/file-select.tsx +0 -71
  295. package/src/scripts/common/partials/__tests__/__snapshots__/footer.spec.jsx.snap +0 -42
  296. package/src/scripts/common/partials/__tests__/__snapshots__/metric.spec.jsx.snap +0 -101
  297. package/src/scripts/common/partials/__tests__/footer.spec.jsx +0 -10
  298. package/src/scripts/common/partials/__tests__/metric.spec.jsx +0 -31
  299. package/src/scripts/common/partials/footer.jsx +0 -40
  300. package/src/scripts/common/partials/login.jsx +0 -99
  301. package/src/scripts/common/partials/metric.jsx +0 -73
  302. package/src/scripts/common/partials/spinner.jsx +0 -34
  303. package/src/scripts/common/partials/status.jsx +0 -96
  304. package/src/scripts/common/partials/timeout.jsx +0 -47
  305. package/src/scripts/common/partials/tooltip.jsx +0 -36
  306. package/src/scripts/components/__tests__/dropdown-button.spec.tsx +0 -49
  307. package/src/scripts/components/dropdown-button.tsx +0 -42
  308. package/src/scripts/components/feature-toggle.tsx +0 -19
  309. package/src/scripts/components/panel-group.tsx +0 -24
  310. package/src/scripts/components/panel.tsx +0 -42
  311. package/src/scripts/datalad/__tests__/snapshotVersion.spec.js +0 -21
  312. package/src/scripts/datalad/comments/__tests__/comment-editor.spec.jsx +0 -19
  313. package/src/scripts/datalad/comments/block-style-controls.jsx +0 -46
  314. package/src/scripts/datalad/comments/comment-editor.jsx +0 -79
  315. package/src/scripts/datalad/comments/inline-style-controls.jsx +0 -34
  316. package/src/scripts/datalad/comments/style-button.jsx +0 -28
  317. package/src/scripts/datalad/dashboard/__tests__/__snapshots__/dashboard.spec.jsx.snap +0 -163
  318. package/src/scripts/datalad/dashboard/__tests__/dashboard.spec.jsx +0 -21
  319. package/src/scripts/datalad/dashboard/dashboard.jsx +0 -54
  320. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-filter.spec.jsx.snap +0 -20
  321. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row-skeleton.spec.jsx.snap +0 -13
  322. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-row.spec.jsx.snap +0 -65
  323. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-sorter.spec.jsx.snap +0 -14
  324. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/dataset-virtual-scroller.spec.jsx.snap +0 -17
  325. package/src/scripts/datalad/dashboard/datasets/__tests__/__snapshots__/uploaded.spec.jsx.snap +0 -27
  326. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-filter.spec.jsx +0 -67
  327. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-query.spec.jsx +0 -72
  328. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row-skeleton.spec.jsx +0 -9
  329. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-row.spec.jsx +0 -53
  330. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-sorter.spec.jsx +0 -69
  331. package/src/scripts/datalad/dashboard/datasets/__tests__/dataset-virtual-scroller.spec.jsx +0 -65
  332. package/src/scripts/datalad/dashboard/datasets/__tests__/uploaded.spec.jsx +0 -17
  333. package/src/scripts/datalad/dashboard/datasets/dataset-filter.jsx +0 -78
  334. package/src/scripts/datalad/dashboard/datasets/dataset-query.jsx +0 -102
  335. package/src/scripts/datalad/dashboard/datasets/dataset-row-error-boundary.jsx +0 -52
  336. package/src/scripts/datalad/dashboard/datasets/dataset-row-skeleton.jsx +0 -10
  337. package/src/scripts/datalad/dashboard/datasets/dataset-row.jsx +0 -58
  338. package/src/scripts/datalad/dashboard/datasets/dataset-sorter.jsx +0 -148
  339. package/src/scripts/datalad/dashboard/datasets/dataset-statuses.jsx +0 -44
  340. package/src/scripts/datalad/dashboard/datasets/dataset-tab.jsx +0 -192
  341. package/src/scripts/datalad/dashboard/datasets/dataset-virtual-scroller.jsx +0 -126
  342. package/src/scripts/datalad/dashboard/datasets/row-height.jsx +0 -7
  343. package/src/scripts/datalad/dashboard/datasets/uploaded.jsx +0 -33
  344. package/src/scripts/datalad/dataset/__tests__/__snapshots__/comments.spec.jsx.snap +0 -137
  345. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-page.spec.jsx.snap +0 -69
  346. package/src/scripts/datalad/dataset/__tests__/__snapshots__/dataset-query.spec.jsx.snap +0 -15
  347. package/src/scripts/datalad/dataset/__tests__/__snapshots__/left-siderbar.spec.jsx.snap +0 -85
  348. package/src/scripts/datalad/dataset/__tests__/dataset-page.spec.jsx +0 -33
  349. package/src/scripts/datalad/dataset/__tests__/dataset-query.spec.jsx +0 -20
  350. package/src/scripts/datalad/dataset/__tests__/left-siderbar.spec.jsx +0 -106
  351. package/src/scripts/datalad/dataset/comment.jsx +0 -90
  352. package/src/scripts/datalad/dataset/comments.jsx +0 -83
  353. package/src/scripts/datalad/dataset/dataset-description.jsx +0 -111
  354. package/src/scripts/datalad/dataset/dataset-main.jsx +0 -29
  355. package/src/scripts/datalad/dataset/dataset-page.jsx +0 -63
  356. package/src/scripts/datalad/dataset/dataset-query.jsx +0 -192
  357. package/src/scripts/datalad/dataset/dataset.jsx +0 -22
  358. package/src/scripts/datalad/dataset/delete-page.tsx +0 -92
  359. package/src/scripts/datalad/dataset/left-sidebar.jsx +0 -109
  360. package/src/scripts/datalad/download/__tests__/__snapshots__/download-dataset.spec.jsx.snap +0 -7
  361. package/src/scripts/datalad/download/__tests__/__snapshots__/download-tool.spec.jsx.snap +0 -26
  362. package/src/scripts/datalad/download/__tests__/download-dataset.spec.jsx +0 -19
  363. package/src/scripts/datalad/download/__tests__/download-tool.spec.jsx +0 -19
  364. package/src/scripts/datalad/download/download-command-line.jsx +0 -43
  365. package/src/scripts/datalad/download/download-datalad.jsx +0 -58
  366. package/src/scripts/datalad/download/download-dataset.jsx +0 -61
  367. package/src/scripts/datalad/download/download-link.jsx +0 -41
  368. package/src/scripts/datalad/download/download-native.js +0 -118
  369. package/src/scripts/datalad/download/download-query.js +0 -22
  370. package/src/scripts/datalad/download/download-s3.jsx +0 -46
  371. package/src/scripts/datalad/download/download-tool.jsx +0 -44
  372. package/src/scripts/datalad/download/native-file-toast.jsx +0 -90
  373. package/src/scripts/datalad/download/shell-example.jsx +0 -9
  374. package/src/scripts/datalad/download/track-download.js +0 -15
  375. package/src/scripts/datalad/fragments/__tests__/__snapshots__/cancel-button.spec.jsx.snap +0 -21
  376. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-analytics.spec.jsx.snap +0 -41
  377. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-authors.spec.jsx.snap +0 -13
  378. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-readme.spec.jsx.snap +0 -49
  379. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-title.spec.jsx.snap +0 -7
  380. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-tools.spec.jsx.snap +0 -346
  381. package/src/scripts/datalad/fragments/__tests__/__snapshots__/dataset-uploaded.spec.jsx.snap +0 -7
  382. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-button.spec.jsx.snap +0 -21
  383. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-list.spec.jsx.snap +0 -34
  384. package/src/scripts/datalad/fragments/__tests__/__snapshots__/edit-readme.spec.jsx.snap +0 -3
  385. package/src/scripts/datalad/fragments/__tests__/__snapshots__/save-button.spec.jsx.snap +0 -21
  386. package/src/scripts/datalad/fragments/__tests__/dataset-analytics.spec.jsx +0 -16
  387. package/src/scripts/datalad/fragments/__tests__/dataset-authors.spec.jsx +0 -22
  388. package/src/scripts/datalad/fragments/__tests__/dataset-prominent-links.spec.jsx +0 -32
  389. package/src/scripts/datalad/fragments/__tests__/dataset-readme.spec.jsx +0 -10
  390. package/src/scripts/datalad/fragments/__tests__/dataset-summary.spec.jsx +0 -55
  391. package/src/scripts/datalad/fragments/__tests__/dataset-title.spec.jsx +0 -10
  392. package/src/scripts/datalad/fragments/__tests__/dataset-tools.spec.jsx +0 -55
  393. package/src/scripts/datalad/fragments/__tests__/dataset-uploaded.spec.jsx +0 -16
  394. package/src/scripts/datalad/fragments/__tests__/edit-list.spec.jsx +0 -25
  395. package/src/scripts/datalad/fragments/__tests__/edit-readme.spec.jsx +0 -10
  396. package/src/scripts/datalad/fragments/cancel-button.jsx +0 -24
  397. package/src/scripts/datalad/fragments/copyable-tooltip.jsx +0 -82
  398. package/src/scripts/datalad/fragments/dataset-analytics.jsx +0 -27
  399. package/src/scripts/datalad/fragments/dataset-authors.jsx +0 -16
  400. package/src/scripts/datalad/fragments/dataset-citation.jsx +0 -77
  401. package/src/scripts/datalad/fragments/dataset-files.jsx +0 -50
  402. package/src/scripts/datalad/fragments/dataset-git-access.jsx +0 -56
  403. package/src/scripts/datalad/fragments/dataset-git-hash.jsx +0 -27
  404. package/src/scripts/datalad/fragments/dataset-history.jsx +0 -95
  405. package/src/scripts/datalad/fragments/dataset-modified.jsx +0 -17
  406. package/src/scripts/datalad/fragments/dataset-prominent-links.jsx +0 -129
  407. package/src/scripts/datalad/fragments/dataset-readme.jsx +0 -42
  408. package/src/scripts/datalad/fragments/dataset-summary.jsx +0 -230
  409. package/src/scripts/datalad/fragments/dataset-title.jsx +0 -10
  410. package/src/scripts/datalad/fragments/dataset-tools.jsx +0 -190
  411. package/src/scripts/datalad/fragments/dataset-uploaded.jsx +0 -25
  412. package/src/scripts/datalad/fragments/edit-button.jsx +0 -24
  413. package/src/scripts/datalad/fragments/edit-description-field.jsx +0 -54
  414. package/src/scripts/datalad/fragments/edit-description-list.jsx +0 -49
  415. package/src/scripts/datalad/fragments/edit-list.jsx +0 -82
  416. package/src/scripts/datalad/fragments/edit-readme.jsx +0 -44
  417. package/src/scripts/datalad/fragments/incomplete-dataset.jsx +0 -23
  418. package/src/scripts/datalad/fragments/metadata-tool.jsx +0 -34
  419. package/src/scripts/datalad/fragments/number-input.tsx +0 -126
  420. package/src/scripts/datalad/fragments/save-button.jsx +0 -24
  421. package/src/scripts/datalad/fragments/select-input.tsx +0 -247
  422. package/src/scripts/datalad/fragments/share-dataset-button.jsx +0 -32
  423. package/src/scripts/datalad/fragments/text-array-input.tsx +0 -119
  424. package/src/scripts/datalad/fragments/text-input.tsx +0 -206
  425. package/src/scripts/datalad/mutations/__tests__/__snapshots__/comment.spec.jsx.snap +0 -5
  426. package/src/scripts/datalad/mutations/__tests__/__snapshots__/delete.spec.jsx.snap +0 -181
  427. package/src/scripts/datalad/mutations/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -361
  428. package/src/scripts/datalad/mutations/__tests__/__snapshots__/subscribe-to-newsletter.spec.jsx.snap +0 -83
  429. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-file.spec.jsx.snap +0 -25
  430. package/src/scripts/datalad/mutations/__tests__/__snapshots__/update-permissions.spec.jsx.snap +0 -361
  431. package/src/scripts/datalad/mutations/__tests__/comment.spec.jsx +0 -154
  432. package/src/scripts/datalad/mutations/__tests__/manage-permissions.spec.jsx +0 -21
  433. package/src/scripts/datalad/mutations/__tests__/subscribe-to-newsletter.spec.jsx +0 -10
  434. package/src/scripts/datalad/mutations/__tests__/update-file.spec.jsx +0 -15
  435. package/src/scripts/datalad/mutations/__tests__/update-permissions.spec.jsx +0 -21
  436. package/src/scripts/datalad/mutations/add-metadata.jsx +0 -164
  437. package/src/scripts/datalad/mutations/comment.jsx +0 -164
  438. package/src/scripts/datalad/mutations/delete-dataset-form.jsx +0 -82
  439. package/src/scripts/datalad/mutations/description.jsx +0 -129
  440. package/src/scripts/datalad/mutations/flag-annex-object.jsx +0 -62
  441. package/src/scripts/datalad/mutations/metadata-form.jsx +0 -388
  442. package/src/scripts/datalad/mutations/readme.jsx +0 -53
  443. package/src/scripts/datalad/mutations/remove-annex-object.jsx +0 -71
  444. package/src/scripts/datalad/mutations/subscribe-to-newsletter.jsx +0 -26
  445. package/src/scripts/datalad/mutations/update-file.jsx +0 -51
  446. package/src/scripts/datalad/routes/__tests__/__snapshots__/manage-permissions.spec.jsx.snap +0 -159
  447. package/src/scripts/datalad/routes/__tests__/__snapshots__/snapshot.spec.jsx.snap +0 -31
  448. package/src/scripts/datalad/routes/__tests__/dataset-content.spec.jsx +0 -108
  449. package/src/scripts/datalad/routes/__tests__/file-display.spec.jsx +0 -22
  450. package/src/scripts/datalad/routes/__tests__/manage-permissions.spec.jsx +0 -101
  451. package/src/scripts/datalad/routes/__tests__/snapshot.spec.jsx +0 -49
  452. package/src/scripts/datalad/routes/admin-datalad.jsx +0 -45
  453. package/src/scripts/datalad/routes/admin-exports.jsx +0 -125
  454. package/src/scripts/datalad/routes/dataset-content.jsx +0 -198
  455. package/src/scripts/datalad/routes/dataset-routes.jsx +0 -162
  456. package/src/scripts/datalad/routes/file-display.jsx +0 -84
  457. package/src/scripts/datalad/routes/manage-permissions.jsx +0 -128
  458. package/src/scripts/datalad/routes/snapshot-content.jsx +0 -135
  459. package/src/scripts/datalad/routes/snapshot.jsx +0 -131
  460. package/src/scripts/datalad/snapshotVersion.js +0 -7
  461. package/src/scripts/datalad/validation/validation-panel.jsx +0 -48
  462. package/src/scripts/datalad/validation/validation-status.jsx +0 -120
  463. package/src/scripts/datalad/validation/validation.jsx +0 -40
  464. package/src/scripts/dataset/dataset.metrics.jsx +0 -61
  465. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree-unloaded-directory.spec.jsx.snap +0 -26
  466. package/src/scripts/file-tree/__tests__/__snapshots__/file-tree.spec.jsx.snap +0 -18
  467. package/src/scripts/file-tree/__tests__/__snapshots__/file.spec.jsx.snap +0 -81
  468. package/src/scripts/file-tree/__tests__/file-tree-loading.spec.jsx +0 -18
  469. package/src/scripts/file-tree/__tests__/file-tree-unloaded-directory.spec.jsx +0 -74
  470. package/src/scripts/file-tree/__tests__/file-tree.spec.jsx +0 -94
  471. package/src/scripts/file-tree/__tests__/file-viewer-type.spec.jsx +0 -15
  472. package/src/scripts/file-tree/__tests__/file.spec.jsx +0 -44
  473. package/src/scripts/file-tree/__tests__/flat-to-tree.spec.js +0 -55
  474. package/src/scripts/file-tree/file-tree-loading.jsx +0 -64
  475. package/src/scripts/file-tree/file-tree-unloaded-directory.jsx +0 -108
  476. package/src/scripts/file-tree/file-tree.jsx +0 -133
  477. package/src/scripts/file-tree/file-view.jsx +0 -31
  478. package/src/scripts/file-tree/file-viewer-type.jsx +0 -45
  479. package/src/scripts/file-tree/file.jsx +0 -123
  480. package/src/scripts/file-tree/files.jsx +0 -126
  481. package/src/scripts/file-tree/flat-to-tree.js +0 -49
  482. package/src/scripts/file-tree/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -51
  483. package/src/scripts/file-tree/viewers/__tests__/file-viewer-json.spec.jsx +0 -15
  484. package/src/scripts/file-tree/viewers/__tests__/parse-tabular.spec.js +0 -24
  485. package/src/scripts/file-tree/viewers/file-viewer-csv.jsx +0 -16
  486. package/src/scripts/file-tree/viewers/file-viewer-html.jsx +0 -20
  487. package/src/scripts/file-tree/viewers/file-viewer-json.jsx +0 -50
  488. package/src/scripts/file-tree/viewers/file-viewer-nifti.jsx +0 -11
  489. package/src/scripts/file-tree/viewers/file-viewer-table.jsx +0 -34
  490. package/src/scripts/file-tree/viewers/file-viewer-text.jsx +0 -13
  491. package/src/scripts/file-tree/viewers/file-viewer-tsv.jsx +0 -16
  492. package/src/scripts/file-tree/viewers/parse-tabular.js +0 -18
  493. package/src/scripts/front-page/__tests__/__snapshots__/email-subscription-box.spec.jsx.snap +0 -190
  494. package/src/scripts/front-page/__tests__/__snapshots__/front-page-stats.spec.jsx.snap +0 -29
  495. package/src/scripts/front-page/__tests__/__snapshots__/front-page-top-datasets.spec.jsx.snap +0 -464
  496. package/src/scripts/front-page/__tests__/dataset-count.spec.jsx +0 -33
  497. package/src/scripts/front-page/__tests__/email-subscription-box.spec.jsx +0 -57
  498. package/src/scripts/front-page/__tests__/front-page-stats.spec.jsx +0 -10
  499. package/src/scripts/front-page/__tests__/front-page-top-datasets.spec.jsx +0 -27
  500. package/src/scripts/front-page/__tests__/participant-count.spec.jsx +0 -31
  501. package/src/scripts/front-page/dataset-count.jsx +0 -29
  502. package/src/scripts/front-page/email-subscription-box.jsx +0 -131
  503. package/src/scripts/front-page/front-page-additional-info.jsx +0 -15
  504. package/src/scripts/front-page/front-page-collaborators.jsx +0 -117
  505. package/src/scripts/front-page/front-page-stats.jsx +0 -71
  506. package/src/scripts/front-page/front-page-support.jsx +0 -30
  507. package/src/scripts/front-page/front-page-tabs.jsx +0 -166
  508. package/src/scripts/front-page/front-page-top-datasets.jsx +0 -203
  509. package/src/scripts/front-page/front-page.jsx +0 -95
  510. package/src/scripts/front-page/participant-count.jsx +0 -25
  511. package/src/scripts/hooks/use-measure.js +0 -15
  512. package/src/scripts/hooks/use-previous.js +0 -7
  513. package/src/scripts/index.jsx +0 -16
  514. package/src/scripts/nav/assets/brand_mark.png +0 -0
  515. package/src/scripts/nav/assets/favicon-upload.png +0 -0
  516. package/src/scripts/nav/assets/logo_app.png +0 -0
  517. package/src/scripts/nav/navbar.jsx +0 -144
  518. package/src/scripts/nav/navbar.navmenu.jsx +0 -106
  519. package/src/scripts/nav/navbar.usermenu.jsx +0 -52
  520. package/src/scripts/pages/citation-page.jsx +0 -43
  521. package/src/scripts/pet/__tests__/__snapshots__/dummy.spec.jsx.snap +0 -70
  522. package/src/scripts/pet/__tests__/dummy.spec.jsx +0 -10
  523. package/src/scripts/pet/dummy.jsx +0 -61
  524. package/src/scripts/refactor_2021/dataset/dataset-pre-refactor-container.tsx +0 -12
  525. package/src/scripts/refactor_2021/dataset/routes/download-dataset.jsx +0 -70
  526. package/src/scripts/refactor_2021/redesign-form.jsx +0 -427
  527. package/src/scripts/routes.tsx +0 -36
  528. package/src/scripts/search/search-input.tsx +0 -42
  529. package/src/scripts/search/search-results.tsx +0 -114
  530. package/src/scripts/styles/capitalized.jsx +0 -6
  531. package/src/scripts/styles/uppercase.jsx +0 -6
  532. package/src/scripts/uploader/__tests__/add-path-to-files.spec.js +0 -29
  533. package/src/scripts/uploader/__tests__/file-upload.spec.js +0 -116
  534. package/src/scripts/uploader/__tests__/upload-disclaimer.spec.jsx +0 -67
  535. package/src/scripts/uploader/__tests__/upload-mutation.spec.js +0 -57
  536. package/src/scripts/uploader/__tests__/uploader.spec.js +0 -31
  537. package/src/scripts/uploader/add-path-to-files.js +0 -19
  538. package/src/scripts/uploader/file-upload.js +0 -88
  539. package/src/scripts/uploader/upload-button.jsx +0 -18
  540. package/src/scripts/uploader/upload-disclaimer.jsx +0 -92
  541. package/src/scripts/uploader/upload-file-status.jsx +0 -20
  542. package/src/scripts/uploader/upload-issues.jsx +0 -131
  543. package/src/scripts/uploader/upload-metadata.jsx +0 -59
  544. package/src/scripts/uploader/upload-mutation.js +0 -111
  545. package/src/scripts/uploader/upload-progress-button.jsx +0 -20
  546. package/src/scripts/uploader/upload-progress-class.js +0 -36
  547. package/src/scripts/uploader/upload-progress.jsx +0 -15
  548. package/src/scripts/uploader/upload-rename.jsx +0 -33
  549. package/src/scripts/uploader/upload-resume.jsx +0 -35
  550. package/src/scripts/uploader/upload-select.jsx +0 -29
  551. package/src/scripts/uploader/upload-status.jsx +0 -23
  552. package/src/scripts/uploader/upload-step.jsx +0 -48
  553. package/src/scripts/uploader/uploader-context.js +0 -6
  554. package/src/scripts/uploader/uploader-location.js +0 -5
  555. package/src/scripts/uploader/uploader-modal.jsx +0 -27
  556. package/src/scripts/uploader/uploader-setup-routes.jsx +0 -52
  557. package/src/scripts/uploader/uploader-status-routes.jsx +0 -30
  558. package/src/scripts/uploader/uploader-view.jsx +0 -45
  559. package/src/scripts/uploader/uploader.jsx +0 -388
  560. package/src/scripts/user/__mocks__/user.store.js +0 -1
  561. package/src/scripts/user/api.jsx +0 -132
  562. package/src/scripts/user/avatar.jsx +0 -40
  563. package/src/scripts/utils/crn.js +0 -15
  564. package/src/scripts/utils/request.js +0 -107
  565. package/src/scripts/utils/user.js +0 -18
  566. package/src/scripts/validation/validation-results.issues.issue.jsx +0 -90
  567. package/src/scripts/validation/validation-results.issues.jsx +0 -79
  568. 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
- }