@openneuro/app 4.20.5 → 4.20.6-alpha.2

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 (358) hide show
  1. package/__mocks__/fileMock.js +1 -1
  2. package/package.json +5 -5
  3. package/pluralize-esm.js +204 -211
  4. package/src/@types/custom.d.ts +3 -3
  5. package/src/@types/react.d.ts +3 -4
  6. package/src/client.jsx +17 -16
  7. package/src/scripts/__mocks__/config.ts +6 -6
  8. package/src/scripts/__utils__/mock-app-shell.tsx +9 -8
  9. package/src/scripts/apm.js +6 -6
  10. package/src/scripts/app.tsx +7 -7
  11. package/src/scripts/authentication/__tests__/profile.spec.js +10 -10
  12. package/src/scripts/authentication/admin-user.jsx +2 -2
  13. package/src/scripts/authentication/logged-in.jsx +2 -2
  14. package/src/scripts/authentication/logged-out.jsx +2 -2
  15. package/src/scripts/authentication/loginCheck.js +2 -2
  16. package/src/scripts/authentication/loginUrls.ts +1 -1
  17. package/src/scripts/authentication/profile.ts +7 -7
  18. package/src/scripts/authentication/regular-user.tsx +3 -3
  19. package/src/scripts/authentication/signOut.ts +2 -2
  20. package/src/scripts/authentication/withProfile.jsx +6 -6
  21. package/src/scripts/common/block-navigation.jsx +3 -4
  22. package/src/scripts/common/containers/__tests__/header.spec.tsx +16 -16
  23. package/src/scripts/common/containers/footer.tsx +3 -3
  24. package/src/scripts/common/containers/header.tsx +30 -30
  25. package/src/scripts/common/forms/__tests__/warn-button.spec.jsx +6 -6
  26. package/src/scripts/common/forms/warn-button.jsx +21 -17
  27. package/src/scripts/common/partials/block-navigation.jsx +3 -4
  28. package/src/scripts/common/partials/freshdesk-widget.jsx +17 -20
  29. package/src/scripts/common/partials/toast-content.jsx +2 -2
  30. package/src/scripts/components/__tests__/data-table.spec.tsx +7 -7
  31. package/src/scripts/components/data-table.tsx +23 -22
  32. package/src/scripts/config.ts +2 -2
  33. package/src/scripts/datalad/dataset/comments-fragments.js +1 -1
  34. package/src/scripts/datalad/dataset/dataset-context.js +1 -1
  35. package/src/scripts/datalad/dataset/dataset-query-context.js +1 -1
  36. package/src/scripts/datalad/dataset/dataset-query-fragments.js +1 -1
  37. package/src/scripts/datalad/mutations/cache-clear.jsx +7 -6
  38. package/src/scripts/datalad/mutations/cache-id.js +2 -2
  39. package/src/scripts/datalad/mutations/delete-comment.jsx +13 -11
  40. package/src/scripts/datalad/mutations/delete.jsx +10 -9
  41. package/src/scripts/datalad/mutations/follow.jsx +12 -11
  42. package/src/scripts/datalad/mutations/publish.jsx +13 -12
  43. package/src/scripts/datalad/mutations/remove-permissions.jsx +8 -8
  44. package/src/scripts/datalad/mutations/revalidate.jsx +7 -6
  45. package/src/scripts/datalad/mutations/snapshot.tsx +7 -7
  46. package/src/scripts/datalad/mutations/star.jsx +12 -11
  47. package/src/scripts/datalad/mutations/submit-metadata.jsx +14 -12
  48. package/src/scripts/datalad/mutations/update-permissions.jsx +14 -13
  49. package/src/scripts/datalad/mutations/update-ref.jsx +7 -6
  50. package/src/scripts/datalad/routes/dataset-redirect.tsx +49 -49
  51. package/src/scripts/datalad/subscriptions/__tests__/files-subscription.spec.jsx +32 -32
  52. package/src/scripts/datalad/subscriptions/files-subscription.jsx +16 -16
  53. package/src/scripts/datalad/subscriptions/useDatasetDeletedSubscription.jsx +4 -4
  54. package/src/scripts/datalad/subscriptions/useDraftSubscription.js +4 -4
  55. package/src/scripts/datalad/subscriptions/usePermissionsSubscription.js +4 -4
  56. package/src/scripts/datalad/subscriptions/useSnapshotsUpdatedSubscriptions.js +3 -3
  57. package/src/scripts/dataset/__tests__/__snapshots__/snapshot-container.spec.tsx.snap +2 -2
  58. package/src/scripts/dataset/__tests__/snapshot-container.spec.tsx +12 -12
  59. package/src/scripts/dataset/comments/__tests__/comment.spec.jsx +21 -21
  60. package/src/scripts/dataset/comments/__tests__/comments.spec.jsx +10 -10
  61. package/src/scripts/dataset/comments/block-style-controls.jsx +15 -15
  62. package/src/scripts/dataset/comments/comment-editor.jsx +31 -31
  63. package/src/scripts/dataset/comments/comment.jsx +50 -50
  64. package/src/scripts/dataset/comments/comments.jsx +24 -22
  65. package/src/scripts/dataset/comments/inline-style-controls.jsx +9 -9
  66. package/src/scripts/dataset/comments/style-button.jsx +8 -9
  67. package/src/scripts/dataset/common/follow-toggles.tsx +3 -3
  68. package/src/scripts/dataset/dataset-query-context.js +1 -1
  69. package/src/scripts/dataset/dataset-query.jsx +34 -31
  70. package/src/scripts/dataset/dataset-routes.jsx +5 -5
  71. package/src/scripts/dataset/download/__tests__/download-command-line.spec.jsx +13 -13
  72. package/src/scripts/dataset/download/__tests__/download-link.spec.jsx +10 -10
  73. package/src/scripts/dataset/download/__tests__/download-native.spec.js +7 -7
  74. package/src/scripts/dataset/download/__tests__/shell-example.spec.jsx +5 -5
  75. package/src/scripts/dataset/download/download-command-line.jsx +9 -7
  76. package/src/scripts/dataset/download/download-datalad.jsx +22 -20
  77. package/src/scripts/dataset/download/download-derivative-datalad.tsx +2 -2
  78. package/src/scripts/dataset/download/download-derivative-s3.tsx +2 -2
  79. package/src/scripts/dataset/download/download-link.jsx +6 -6
  80. package/src/scripts/dataset/download/download-native.js +20 -19
  81. package/src/scripts/dataset/download/download-query.js +2 -3
  82. package/src/scripts/dataset/download/download-s3.jsx +8 -8
  83. package/src/scripts/dataset/download/download-script.tsx +23 -20
  84. package/src/scripts/dataset/download/native-file-toast.jsx +13 -11
  85. package/src/scripts/dataset/download/shell-example.jsx +1 -1
  86. package/src/scripts/dataset/download/track-download.js +5 -5
  87. package/src/scripts/dataset/draft-container.tsx +104 -102
  88. package/src/scripts/dataset/draft-snapshot-routes.tsx +3 -3
  89. package/src/scripts/dataset/files/__tests__/file-tree-unloaded-directory.spec.jsx +23 -23
  90. package/src/scripts/dataset/files/__tests__/file-tree.spec.jsx +57 -58
  91. package/src/scripts/dataset/files/__tests__/file-viewer-type.spec.jsx +6 -6
  92. package/src/scripts/dataset/files/__tests__/file.spec.jsx +15 -15
  93. package/src/scripts/dataset/files/file-display.jsx +11 -11
  94. package/src/scripts/dataset/files/file-tree-unloaded-directory.jsx +10 -10
  95. package/src/scripts/dataset/files/file-tree.tsx +27 -27
  96. package/src/scripts/dataset/files/file-view.jsx +4 -4
  97. package/src/scripts/dataset/files/file-viewer-type.jsx +21 -21
  98. package/src/scripts/dataset/files/file.tsx +85 -80
  99. package/src/scripts/dataset/files/files.tsx +41 -40
  100. package/src/scripts/dataset/files/index.tsx +2 -2
  101. package/src/scripts/dataset/files/viewers/__tests__/__snapshots__/file-viewer-json.spec.jsx.snap +0 -24
  102. package/src/scripts/dataset/files/viewers/__tests__/file-viewer-json.spec.jsx +9 -9
  103. package/src/scripts/dataset/files/viewers/__tests__/parse-tabular.spec.js +8 -8
  104. package/src/scripts/dataset/files/viewers/file-viewer-csv.jsx +5 -5
  105. package/src/scripts/dataset/files/viewers/file-viewer-html.jsx +3 -3
  106. package/src/scripts/dataset/files/viewers/file-viewer-json.jsx +4 -4
  107. package/src/scripts/dataset/files/viewers/file-viewer-nifti.tsx +4 -4
  108. package/src/scripts/dataset/files/viewers/file-viewer-table.tsx +3 -3
  109. package/src/scripts/dataset/files/viewers/file-viewer-text.jsx +3 -3
  110. package/src/scripts/dataset/files/viewers/file-viewer-tsv.jsx +5 -5
  111. package/src/scripts/dataset/files/viewers/parse-tabular.js +4 -4
  112. package/src/scripts/dataset/fragments/__tests__/cancel-button.spec.tsx +5 -5
  113. package/src/scripts/dataset/fragments/__tests__/dataset-alert-draft.spec.tsx +9 -9
  114. package/src/scripts/dataset/fragments/__tests__/dataset-citation.spec.jsx +10 -10
  115. package/src/scripts/dataset/fragments/__tests__/doi-link.spec.tsx +29 -29
  116. package/src/scripts/dataset/fragments/__tests__/edit-button.spec.tsx +5 -5
  117. package/src/scripts/dataset/fragments/__tests__/edit-list.spec.jsx +13 -13
  118. package/src/scripts/dataset/fragments/__tests__/save-button.spec.tsx +5 -5
  119. package/src/scripts/dataset/fragments/__tests__/select-input.spec.tsx +26 -26
  120. package/src/scripts/dataset/fragments/cancel-button.tsx +2 -2
  121. package/src/scripts/dataset/fragments/comments-fragments.js +1 -1
  122. package/src/scripts/dataset/fragments/copyable-tooltip.jsx +14 -13
  123. package/src/scripts/dataset/fragments/dataset-alert-draft.tsx +17 -13
  124. package/src/scripts/dataset/fragments/dataset-alert-version.tsx +5 -4
  125. package/src/scripts/dataset/fragments/dataset-citation.jsx +23 -21
  126. package/src/scripts/dataset/fragments/dataset-history.jsx +12 -12
  127. package/src/scripts/dataset/fragments/dataset-reviewers.ts +1 -1
  128. package/src/scripts/dataset/fragments/doi-link.tsx +6 -6
  129. package/src/scripts/dataset/fragments/edit-button.tsx +2 -2
  130. package/src/scripts/dataset/fragments/edit-description-field.jsx +23 -21
  131. package/src/scripts/dataset/fragments/edit-description-list.jsx +8 -8
  132. package/src/scripts/dataset/fragments/edit-list.jsx +8 -8
  133. package/src/scripts/dataset/fragments/number-input.tsx +36 -35
  134. package/src/scripts/dataset/fragments/save-button.tsx +2 -2
  135. package/src/scripts/dataset/fragments/select-input.tsx +87 -86
  136. package/src/scripts/dataset/fragments/text-array-input.tsx +38 -37
  137. package/src/scripts/dataset/fragments/text-input.tsx +79 -78
  138. package/src/scripts/dataset/mutations/__tests__/cache-id.spec.js +5 -5
  139. package/src/scripts/dataset/mutations/__tests__/delete-file.spec.jsx +85 -83
  140. package/src/scripts/dataset/mutations/__tests__/delete.spec.jsx +8 -8
  141. package/src/scripts/dataset/mutations/__tests__/deprecate-snapshot.spec.tsx +17 -17
  142. package/src/scripts/dataset/mutations/__tests__/deprecate-version.spec.tsx +19 -19
  143. package/src/scripts/dataset/mutations/__tests__/description.spec.jsx +51 -51
  144. package/src/scripts/dataset/mutations/__tests__/remove-permissions.spec.tsx +9 -9
  145. package/src/scripts/dataset/mutations/__tests__/update-permissions.spec.jsx +7 -7
  146. package/src/scripts/dataset/mutations/admin-exports.jsx +13 -12
  147. package/src/scripts/dataset/mutations/cache-clear.jsx +6 -6
  148. package/src/scripts/dataset/mutations/cache-id.js +2 -2
  149. package/src/scripts/dataset/mutations/comment.jsx +25 -23
  150. package/src/scripts/dataset/mutations/create-anonymous-reviewer.tsx +36 -30
  151. package/src/scripts/dataset/mutations/dataset-relations.tsx +28 -29
  152. package/src/scripts/dataset/mutations/delete-anonymous-reviewer.tsx +7 -8
  153. package/src/scripts/dataset/mutations/delete-comment.jsx +14 -12
  154. package/src/scripts/dataset/mutations/delete-dataset-form.jsx +20 -22
  155. package/src/scripts/dataset/mutations/delete-file.jsx +8 -8
  156. package/src/scripts/dataset/mutations/delete.jsx +10 -9
  157. package/src/scripts/dataset/mutations/deprecate-version.tsx +5 -6
  158. package/src/scripts/dataset/mutations/description.jsx +21 -20
  159. package/src/scripts/dataset/mutations/flag-annex-object.jsx +10 -9
  160. package/src/scripts/dataset/mutations/follow.tsx +15 -14
  161. package/src/scripts/dataset/mutations/import-dataset.tsx +5 -5
  162. package/src/scripts/dataset/mutations/metadata-form.jsx +94 -97
  163. package/src/scripts/dataset/mutations/publish.jsx +13 -13
  164. package/src/scripts/dataset/mutations/readme.jsx +12 -11
  165. package/src/scripts/dataset/mutations/remove-annex-object.jsx +10 -9
  166. package/src/scripts/dataset/mutations/remove-permissions.tsx +5 -6
  167. package/src/scripts/dataset/mutations/revalidate.jsx +7 -7
  168. package/src/scripts/dataset/mutations/snapshot.tsx +8 -8
  169. package/src/scripts/dataset/mutations/star.tsx +14 -13
  170. package/src/scripts/dataset/mutations/submit-metadata.jsx +12 -11
  171. package/src/scripts/dataset/mutations/undo-deprecate-version.tsx +5 -6
  172. package/src/scripts/dataset/mutations/update-file.jsx +6 -6
  173. package/src/scripts/dataset/mutations/update-permissions.tsx +9 -9
  174. package/src/scripts/dataset/mutations/update-ref.jsx +7 -7
  175. package/src/scripts/dataset/routes/__tests__/deprecate-snapshot-page.spec.tsx +5 -5
  176. package/src/scripts/dataset/routes/add-metadata.jsx +19 -20
  177. package/src/scripts/dataset/routes/admin-datalad.jsx +7 -7
  178. package/src/scripts/dataset/routes/dataset-default.tsx +12 -10
  179. package/src/scripts/dataset/routes/delete-page.tsx +12 -12
  180. package/src/scripts/dataset/routes/deprecate-snapshot-page.tsx +8 -8
  181. package/src/scripts/dataset/routes/derivatives.tsx +10 -10
  182. package/src/scripts/dataset/routes/download-dataset.tsx +20 -20
  183. package/src/scripts/dataset/routes/manage-anonymous-reviewers.tsx +37 -35
  184. package/src/scripts/dataset/routes/manage-permissions.jsx +22 -22
  185. package/src/scripts/dataset/routes/publish.jsx +32 -30
  186. package/src/scripts/dataset/routes/snapshot-default.tsx +7 -7
  187. package/src/scripts/dataset/routes/snapshot.tsx +44 -43
  188. package/src/scripts/dataset/routes/styles/dataset-page-border.tsx +3 -3
  189. package/src/scripts/dataset/routes/styles/dataset-page-tab-container.tsx +3 -3
  190. package/src/scripts/dataset/routes/styles/header-row.tsx +3 -3
  191. package/src/scripts/dataset/routes/tab-routes-draft.tsx +12 -12
  192. package/src/scripts/dataset/routes/tab-routes-snapshot.tsx +8 -8
  193. package/src/scripts/dataset/snapshot-container.tsx +78 -86
  194. package/src/scripts/errors/403page.tsx +11 -11
  195. package/src/scripts/errors/404page.tsx +12 -12
  196. package/src/scripts/errors/errorBoundary.jsx +13 -12
  197. package/src/scripts/errors/errorRoute.jsx +6 -6
  198. package/src/scripts/errors/freshdesk-widget.jsx +17 -20
  199. package/src/scripts/errors/freshdeskInterface.jsx +9 -9
  200. package/src/scripts/errors/orcid/email.jsx +3 -3
  201. package/src/scripts/errors/orcid/family.jsx +4 -4
  202. package/src/scripts/errors/orcid/general.jsx +1 -1
  203. package/src/scripts/errors/orcid/given.jsx +4 -4
  204. package/src/scripts/fixtures/dataset-query.ts +119 -119
  205. package/src/scripts/fixtures/mock-app-wrapper.tsx +4 -4
  206. package/src/scripts/index.tsx +9 -9
  207. package/src/scripts/pages/admin/admin.jsx +5 -5
  208. package/src/scripts/pages/admin/flagged-files.jsx +33 -31
  209. package/src/scripts/pages/admin/user-fragment.ts +1 -1
  210. package/src/scripts/pages/admin/user-tools.tsx +13 -11
  211. package/src/scripts/pages/admin/users.jsx +38 -39
  212. package/src/scripts/pages/api.jsx +20 -19
  213. package/src/scripts/pages/citation-page.tsx +4 -4
  214. package/src/scripts/pages/faq/faq.tsx +2 -2
  215. package/src/scripts/pages/front-page/aggregate-queries/aggregate-counts-container.tsx +6 -5
  216. package/src/scripts/pages/front-page/aggregate-queries/use-participant-count.ts +2 -2
  217. package/src/scripts/pages/front-page/aggregate-queries/use-publicDatasets-count.ts +2 -2
  218. package/src/scripts/pages/front-page/front-page-content.ts +42 -42
  219. package/src/scripts/pages/front-page/front-page.tsx +18 -14
  220. package/src/scripts/pages/front-page-comp.tsx +3 -3
  221. package/src/scripts/pages/import-dataset.tsx +10 -10
  222. package/src/scripts/pages/metadata/dataset-metadata.tsx +15 -14
  223. package/src/scripts/pages/pet-redirect.tsx +2 -2
  224. package/src/scripts/queries/dataset.ts +3 -3
  225. package/src/scripts/resources/__tests__/kibana.spec.js +9 -9
  226. package/src/scripts/resources/kibana.js +3 -3
  227. package/src/scripts/resources/strings.js +2 -2
  228. package/src/scripts/routes.tsx +14 -14
  229. package/src/scripts/search/__helpers__/search-render.tsx +3 -3
  230. package/src/scripts/search/__tests__/search-container.spec.tsx +22 -22
  231. package/src/scripts/search/__tests__/search-params-ctx.spec.tsx +20 -20
  232. package/src/scripts/search/es-query-builders.ts +21 -5
  233. package/src/scripts/search/filters-block-container.tsx +14 -16
  234. package/src/scripts/search/initial-search-params.tsx +45 -45
  235. package/src/scripts/search/inputs/__tests__/sort-by-select.spec.tsx +23 -23
  236. package/src/scripts/search/inputs/admin-allDatasets-toggle.tsx +12 -12
  237. package/src/scripts/search/inputs/age-range-input.tsx +9 -8
  238. package/src/scripts/search/inputs/author-input.tsx +14 -11
  239. package/src/scripts/search/inputs/date-radios.tsx +8 -7
  240. package/src/scripts/search/inputs/diagnosis-select.tsx +6 -6
  241. package/src/scripts/search/inputs/index.ts +33 -33
  242. package/src/scripts/search/inputs/keyword-input.tsx +13 -13
  243. package/src/scripts/search/inputs/modality-select.tsx +33 -30
  244. package/src/scripts/search/inputs/pet/bodyParts_input.tsx +18 -16
  245. package/src/scripts/search/inputs/pet/scannerManufacturersModelNames_input.tsx +18 -16
  246. package/src/scripts/search/inputs/pet/scannerManufacturers_input.tsx +18 -16
  247. package/src/scripts/search/inputs/pet/tracerNames_input.tsx +16 -15
  248. package/src/scripts/search/inputs/pet/tracerRadionuclides_input.tsx +18 -16
  249. package/src/scripts/search/inputs/section-select.tsx +6 -6
  250. package/src/scripts/search/inputs/sex-radios.tsx +6 -6
  251. package/src/scripts/search/inputs/show-datasets-radios.tsx +31 -29
  252. package/src/scripts/search/inputs/sort-by-select.tsx +10 -11
  253. package/src/scripts/search/inputs/species-select.tsx +6 -6
  254. package/src/scripts/search/inputs/study-domain-input.tsx +18 -16
  255. package/src/scripts/search/inputs/subject-count-range-input.tsx +8 -7
  256. package/src/scripts/search/inputs/task-input.tsx +18 -16
  257. package/src/scripts/search/search-container.tsx +83 -85
  258. package/src/scripts/search/search-params-ctx.tsx +40 -38
  259. package/src/scripts/search/search-routes.tsx +4 -4
  260. package/src/scripts/search/use-search-results.tsx +125 -99
  261. package/src/scripts/styles/media.tsx +3 -3
  262. package/src/scripts/styles/support-modal.jsx +2 -2
  263. package/src/scripts/sw.ts +12 -11
  264. package/src/scripts/test-utils.js +4 -4
  265. package/src/scripts/uploader/add-path-to-files.js +7 -7
  266. package/src/scripts/uploader/file-select.tsx +3 -3
  267. package/src/scripts/uploader/file-upload.js +13 -12
  268. package/src/scripts/uploader/input.jsx +8 -7
  269. package/src/scripts/uploader/upload-button.jsx +3 -3
  270. package/src/scripts/uploader/upload-disclaimer-input.tsx +66 -66
  271. package/src/scripts/uploader/upload-disclaimer.jsx +6 -5
  272. package/src/scripts/uploader/upload-file-status.jsx +4 -4
  273. package/src/scripts/uploader/upload-issues.jsx +32 -29
  274. package/src/scripts/uploader/upload-metadata.jsx +18 -17
  275. package/src/scripts/uploader/upload-mutation.js +17 -20
  276. package/src/scripts/uploader/upload-progress-button.jsx +5 -4
  277. package/src/scripts/uploader/upload-progress.jsx +3 -3
  278. package/src/scripts/uploader/upload-rename.jsx +6 -5
  279. package/src/scripts/uploader/upload-resume.jsx +26 -24
  280. package/src/scripts/uploader/upload-select.jsx +10 -9
  281. package/src/scripts/uploader/upload-status.jsx +5 -5
  282. package/src/scripts/uploader/upload-step.jsx +9 -9
  283. package/src/scripts/uploader/uploader-context.js +1 -1
  284. package/src/scripts/uploader/uploader-location.js +1 -1
  285. package/src/scripts/uploader/uploader-modal.jsx +8 -7
  286. package/src/scripts/uploader/uploader-setup-routes.jsx +10 -10
  287. package/src/scripts/uploader/uploader-status-routes.jsx +6 -6
  288. package/src/scripts/uploader/uploader-view.jsx +4 -4
  289. package/src/scripts/uploader/uploader.jsx +50 -48
  290. package/src/scripts/users/username.tsx +3 -3
  291. package/src/scripts/utils/__tests__/csv.spec.ts +16 -16
  292. package/src/scripts/utils/__tests__/date.spec.js +4 -4
  293. package/src/scripts/utils/__tests__/json-ld.spec.js +12 -12
  294. package/src/scripts/utils/__tests__/newid.spec.js +9 -9
  295. package/src/scripts/utils/__tests__/userNotify.spec.js +10 -10
  296. package/src/scripts/utils/analytics.tsx +3 -3
  297. package/src/scripts/utils/cookies.js +1 -1
  298. package/src/scripts/utils/csv.ts +13 -15
  299. package/src/scripts/utils/datalad.js +1 -1
  300. package/src/scripts/utils/dataset-url.js +2 -2
  301. package/src/scripts/utils/date.js +2 -2
  302. package/src/scripts/utils/global-polyfill.ts +2 -2
  303. package/src/scripts/utils/gtag.js +6 -6
  304. package/src/scripts/utils/json-ld.js +13 -13
  305. package/src/scripts/utils/newid.js +1 -1
  306. package/src/scripts/utils/user-login-modal-ctx.tsx +4 -4
  307. package/src/scripts/utils/userNotify.js +2 -2
  308. package/src/scripts/validation/validation-panel.jsx +3 -3
  309. package/src/scripts/validation/validation-results.issues.issue.jsx +9 -9
  310. package/src/scripts/validation/validation-results.issues.jsx +19 -17
  311. package/src/scripts/validation/validation-results.jsx +10 -10
  312. package/src/scripts/validation/validation-status.jsx +19 -17
  313. package/src/scripts/validation/validation.jsx +5 -5
  314. package/src/scripts/workers/schema.ts +2 -2
  315. package/src/scripts/workers/schema.worker.ts +4 -4
  316. package/src/scripts/workers/validate.ts +2 -2
  317. package/src/scripts/workers/validate.worker.ts +7 -5
  318. package/vite.config.js +17 -17
  319. package/src/dist/assets/activity-icon.9ab0c828.png +0 -0
  320. package/src/dist/assets/bids.da8810b3.jpg +0 -0
  321. package/src/dist/assets/brand_mark.28e7645d.png +0 -0
  322. package/src/dist/assets/close-button.21e700a6.png +0 -0
  323. package/src/dist/assets/cube-get.39ed5636.png +0 -0
  324. package/src/dist/assets/cube-share.9b558c29.png +0 -0
  325. package/src/dist/assets/cube-use.ccf2ddc5.png +0 -0
  326. package/src/dist/assets/datalad.a35b15b8.jpg +0 -0
  327. package/src/dist/assets/eeg.1dc1dc54.jpg +0 -0
  328. package/src/dist/assets/email-header.1cb8bf76.png +0 -0
  329. package/src/dist/assets/ieeg.f91deb0a.jpg +0 -0
  330. package/src/dist/assets/index.3db805fb.js +0 -23127
  331. package/src/dist/assets/index.3db805fb.js.map +0 -1
  332. package/src/dist/assets/index.5eb79d2c.css +0 -1
  333. package/src/dist/assets/ljaf.567e9566.png +0 -0
  334. package/src/dist/assets/logo_app.8c986cf9.png +0 -0
  335. package/src/dist/assets/logo_cube.5224b745.png +0 -0
  336. package/src/dist/assets/logo_data.3e1d5743.png +0 -0
  337. package/src/dist/assets/logo_users.a84a265a.png +0 -0
  338. package/src/dist/assets/meg.1e1928f8.jpg +0 -0
  339. package/src/dist/assets/mri.b01e4f42.jpg +0 -0
  340. package/src/dist/assets/nih-bi-logo.80d76e1d.png +0 -0
  341. package/src/dist/assets/nih-stanford.2a7c496e.jpg +0 -0
  342. package/src/dist/assets/nih.78a64d38.png +0 -0
  343. package/src/dist/assets/nimh.0ec775d8.png +0 -0
  344. package/src/dist/assets/nru-logo.f3097dc5.png +0 -0
  345. package/src/dist/assets/nsf.eee1d3f7.png +0 -0
  346. package/src/dist/assets/nsf.f87e96e7.png +0 -0
  347. package/src/dist/assets/on-dark-horz.e1f213d0.svg +0 -1
  348. package/src/dist/assets/on-dark.12f4e2ce.svg +0 -1
  349. package/src/dist/assets/on-light-horz.23ff22c3.svg +0 -1
  350. package/src/dist/assets/on-light.50592f7f.svg +0 -1
  351. package/src/dist/assets/pet-scan.21d98a3d.jpg +0 -0
  352. package/src/dist/assets/revicons.4ca02b8a.ttf +0 -0
  353. package/src/dist/assets/revicons.9e4d4c68.eot +0 -0
  354. package/src/dist/assets/revicons.f7b9c306.woff +0 -0
  355. package/src/dist/assets/sqm-logo.9cd0cca5.png +0 -0
  356. package/src/dist/assets/squishymedia.fa3c5919.png +0 -0
  357. package/src/dist/assets/stanford.5f245936.png +0 -0
  358. package/src/dist/index.html +0 -25
@@ -1,17 +1,17 @@
1
- import React, { useState } from 'react'
2
- import PropTypes from 'prop-types'
3
- import { Button } from '@openneuro/components/button'
1
+ import React, { useState } from "react"
2
+ import PropTypes from "prop-types"
3
+ import { Button } from "@openneuro/components/button"
4
4
 
5
- import { RemovePermissions } from '../mutations/remove-permissions'
6
- import { UpdateDatasetPermissions } from '../mutations/update-permissions'
7
- import { AnonymousReviewer } from './manage-anonymous-reviewers'
8
- import { DatasetPageBorder } from './styles/dataset-page-border'
9
- import { HeaderRow3 } from './styles/header-row'
5
+ import { RemovePermissions } from "../mutations/remove-permissions"
6
+ import { UpdateDatasetPermissions } from "../mutations/update-permissions"
7
+ import { AnonymousReviewer } from "./manage-anonymous-reviewers"
8
+ import { DatasetPageBorder } from "./styles/dataset-page-border"
9
+ import { HeaderRow3 } from "./styles/header-row"
10
10
 
11
11
  const description = {
12
- admin: 'Edit dataset and edit permissions',
13
- rw: 'Edit dataset',
14
- ro: 'View dataset',
12
+ admin: "Edit dataset and edit permissions",
13
+ rw: "Edit dataset",
14
+ ro: "View dataset",
15
15
  }
16
16
 
17
17
  export const PermissionRow = ({ datasetId, userId, userEmail, access }) => (
@@ -35,7 +35,7 @@ PermissionRow.propTypes = {
35
35
  datasetId: PropTypes.string,
36
36
  userId: PropTypes.string,
37
37
  userEmail: PropTypes.string,
38
- access: PropTypes.oneOf(['ro', 'rw', 'admin']),
38
+ access: PropTypes.oneOf(["ro", "rw", "admin"]),
39
39
  }
40
40
 
41
41
  export const ShareTable = ({ datasetId, permissions }) => (
@@ -64,12 +64,12 @@ ShareTable.propTypes = {
64
64
  }
65
65
 
66
66
  const Share = ({ datasetId, permissions, reviewers, hasSnapshot }) => {
67
- const [userEmail, setUserEmail] = useState('')
68
- const [access, setAccess] = useState('ro')
67
+ const [userEmail, setUserEmail] = useState("")
68
+ const [access, setAccess] = useState("ro")
69
69
 
70
- const readActive = access === 'ro' && 'active'
71
- const writeActive = access === 'rw' && 'active'
72
- const adminActive = access === 'admin' && 'active'
70
+ const readActive = access === "ro" && "active"
71
+ const writeActive = access === "rw" && "active"
72
+ const adminActive = access === "admin" && "active"
73
73
 
74
74
  return (
75
75
  <DatasetPageBorder>
@@ -88,7 +88,7 @@ const Share = ({ datasetId, permissions, reviewers, hasSnapshot }) => {
88
88
  className="form-control"
89
89
  type="email"
90
90
  value={userEmail}
91
- onChange={e => setUserEmail(e.target.value)}
91
+ onChange={(e) => setUserEmail(e.target.value)}
92
92
  />
93
93
  <div className="input-group-btn">
94
94
  <Button
@@ -96,21 +96,21 @@ const Share = ({ datasetId, permissions, reviewers, hasSnapshot }) => {
96
96
  label="Read"
97
97
  size="xsmall"
98
98
  className={`btn btn-default ${readActive}`}
99
- onClick={() => setAccess('ro')}
99
+ onClick={() => setAccess("ro")}
100
100
  />
101
101
  <Button
102
102
  secondary={true}
103
103
  label="Read and Write"
104
104
  size="xsmall"
105
105
  className={`btn btn-default ${writeActive}`}
106
- onClick={() => setAccess('rw')}
106
+ onClick={() => setAccess("rw")}
107
107
  />
108
108
  <Button
109
109
  secondary={true}
110
110
  label="Admin"
111
111
  size="xsmall"
112
112
  className={`btn btn-default ${adminActive}`}
113
- onClick={() => setAccess('admin')}
113
+ onClick={() => setAccess("admin")}
114
114
  />
115
115
  </div>
116
116
  </div>
@@ -120,7 +120,7 @@ const Share = ({ datasetId, permissions, reviewers, hasSnapshot }) => {
120
120
  datasetId={datasetId}
121
121
  userEmail={userEmail}
122
122
  metadata={access}
123
- done={() => setUserEmail('')}
123
+ done={() => setUserEmail("")}
124
124
  />
125
125
  </div>
126
126
  </div>
@@ -1,37 +1,39 @@
1
- import React from 'react'
2
- import PropTypes from 'prop-types'
3
- import { Navigate } from 'react-router-dom'
4
- import PublishDataset from '../mutations/publish.jsx'
5
- import { DatasetPageBorder } from './styles/dataset-page-border'
6
- import { HeaderRow3 } from './styles/header-row'
1
+ import React from "react"
2
+ import PropTypes from "prop-types"
3
+ import { Navigate } from "react-router-dom"
4
+ import PublishDataset from "../mutations/publish.jsx"
5
+ import { DatasetPageBorder } from "./styles/dataset-page-border"
6
+ import { HeaderRow3 } from "./styles/header-row"
7
7
 
8
- const hasExpectedMetadata = metadata =>
9
- typeof metadata === 'object' && metadata !== null
8
+ const hasExpectedMetadata = (metadata) =>
9
+ typeof metadata === "object" && metadata !== null
10
10
 
11
11
  const Publish = ({ datasetId, metadata }) =>
12
- hasExpectedMetadata(metadata) ? (
13
- <DatasetPageBorder className="dataset-form">
14
- <HeaderRow3>Publish</HeaderRow3>
15
- <div className="dataset-form-body">
16
- <p className="text-danger">
17
- All existing and future snapshots of this dataset will be released
18
- publicly under a{' '}
19
- <a href="https://wiki.creativecommons.org/wiki/CC0">CC0 license</a>.
20
- </p>
21
- </div>
22
- <div className="dataset-form-controls">
23
- <div className="modal-actions">
24
- <PublishDataset datasetId={datasetId} />
12
+ hasExpectedMetadata(metadata)
13
+ ? (
14
+ <DatasetPageBorder className="dataset-form">
15
+ <HeaderRow3>Publish</HeaderRow3>
16
+ <div className="dataset-form-body">
17
+ <p className="text-danger">
18
+ All existing and future snapshots of this dataset will be released
19
+ publicly under a{" "}
20
+ <a href="https://wiki.creativecommons.org/wiki/CC0">CC0 license</a>.
21
+ </p>
25
22
  </div>
26
- </div>
27
- </DatasetPageBorder>
28
- ) : (
29
- <Navigate
30
- to={`/datasets/${datasetId}/metadata`}
31
- state={{ submitPath: `/datasets/${datasetId}/publish` }}
32
- replace
33
- />
34
- )
23
+ <div className="dataset-form-controls">
24
+ <div className="modal-actions">
25
+ <PublishDataset datasetId={datasetId} />
26
+ </div>
27
+ </div>
28
+ </DatasetPageBorder>
29
+ )
30
+ : (
31
+ <Navigate
32
+ to={`/datasets/${datasetId}/metadata`}
33
+ state={{ submitPath: `/datasets/${datasetId}/publish` }}
34
+ replace
35
+ />
36
+ )
35
37
 
36
38
  Publish.propTypes = {
37
39
  datasetId: PropTypes.string,
@@ -1,9 +1,9 @@
1
- import React from 'react'
2
- import Markdown from 'markdown-to-jsx'
3
- import { ReadMore } from '@openneuro/components/read-more'
4
- import { MetaDataBlock } from '@openneuro/components/dataset'
5
- import Files from '../files/files'
6
- import Comments from '../comments/comments'
1
+ import React from "react"
2
+ import Markdown from "markdown-to-jsx"
3
+ import { ReadMore } from "@openneuro/components/read-more"
4
+ import { MetaDataBlock } from "@openneuro/components/dataset"
5
+ import Files from "../files/files"
6
+ import Comments from "../comments/comments"
7
7
 
8
8
  /**
9
9
  * Default tab for snapshot pages
@@ -15,7 +15,7 @@ export const SnapshotDefault = ({ dataset, snapshot }) => (
15
15
  item={
16
16
  <ReadMore id="readme" expandLabel="Read More" collapseLabel="Collapse">
17
17
  <Markdown>
18
- {snapshot.readme == null ? 'N/A' : snapshot.readme}
18
+ {snapshot.readme == null ? "N/A" : snapshot.readme}
19
19
  </Markdown>
20
20
  </ReadMore>
21
21
  }
@@ -1,12 +1,12 @@
1
- import React, { useState } from 'react'
2
- import semver, { ReleaseType } from 'semver'
3
- import SnapshotDataset from '../mutations/snapshot'
4
- import EditList from '../fragments/edit-list.jsx'
5
- import { Button } from '@openneuro/components/button'
6
- import { DatasetPageBorder } from './styles/dataset-page-border'
7
- import { HeaderRow4 } from './styles/header-row'
8
- import FileView from '../files/file-view'
9
- import styled from '@emotion/styled'
1
+ import React, { useState } from "react"
2
+ import semver, { ReleaseType } from "semver"
3
+ import SnapshotDataset from "../mutations/snapshot"
4
+ import EditList from "../fragments/edit-list.jsx"
5
+ import { Button } from "@openneuro/components/button"
6
+ import { DatasetPageBorder } from "./styles/dataset-page-border"
7
+ import { HeaderRow4 } from "./styles/header-row"
8
+ import FileView from "../files/file-view"
9
+ import styled from "@emotion/styled"
10
10
 
11
11
  const FormRow = styled.div`
12
12
  margin-top: 0;
@@ -14,16 +14,16 @@ const FormRow = styled.div`
14
14
  `
15
15
 
16
16
  export const NoErrors = ({ issues, children }) => {
17
- const noErrors =
18
- issues && issues.filter(issue => issue.severity === 'error').length === 0
17
+ const noErrors = issues &&
18
+ issues.filter((issue) => issue.severity === "error").length === 0
19
19
  // zero authors will cause DOI minting to fail
20
- const hasAuthor =
21
- issues && issues.filter(issue => issue.code === 113).length === 0
20
+ const hasAuthor = issues &&
21
+ issues.filter((issue) => issue.code === 113).length === 0
22
22
  if (noErrors && hasAuthor) {
23
23
  return children
24
24
  } else {
25
25
  const correctErrorsMessage =
26
- 'BIDS validation must be complete and all errors corrected'
26
+ "BIDS validation must be complete and all errors corrected"
27
27
  const noAuthorMessage =
28
28
  '"Authors" must include at least one entry in dataset_description.json'
29
29
  const includedMessages = []
@@ -31,7 +31,7 @@ export const NoErrors = ({ issues, children }) => {
31
31
  if (!hasAuthor) includedMessages.push(noAuthorMessage)
32
32
  return (
33
33
  <span className="text-danger">
34
- {`${includedMessages.join(' and ')} to create a version`}
34
+ {`${includedMessages.join(" and ")} to create a version`}
35
35
  </span>
36
36
  )
37
37
  }
@@ -44,20 +44,19 @@ const SnapshotRoute = ({
44
44
  description,
45
45
  }): React.ReactElement => {
46
46
  const [changes, setChanges] = useState([])
47
- const [semanticLevel, setSemanticLevel] = useState('patch')
48
- const draftLicense = (description && description.License) || 'none'
49
- const requiredLicense = 'CC0'
47
+ const [semanticLevel, setSemanticLevel] = useState("patch")
48
+ const draftLicense = (description && description.License) || "none"
49
+ const requiredLicense = "CC0"
50
50
  const updateToCC0 = draftLicense !== requiredLicense
51
51
 
52
52
  const latestSnapshot = snapshots.length && snapshots[snapshots.length - 1]
53
- const newVersion =
54
- snapshots.length && semver.valid(latestSnapshot.tag)
55
- ? semver.inc(latestSnapshot.tag, semanticLevel as ReleaseType)
56
- : '1.0.0'
53
+ const newVersion = snapshots.length && semver.valid(latestSnapshot.tag)
54
+ ? semver.inc(latestSnapshot.tag, semanticLevel as ReleaseType)
55
+ : "1.0.0"
57
56
 
58
- const majorActive = semanticLevel === 'major' && 'active'
59
- const minorActive = semanticLevel === 'minor' && 'active'
60
- const patchActive = semanticLevel === 'patch' && 'active'
57
+ const majorActive = semanticLevel === "major" && "active"
58
+ const minorActive = semanticLevel === "minor" && "active"
59
+ const patchActive = semanticLevel === "patch" && "active"
61
60
 
62
61
  return (
63
62
  <DatasetPageBorder>
@@ -66,11 +65,11 @@ const SnapshotRoute = ({
66
65
  <HeaderRow4>New Version</HeaderRow4>
67
66
  {updateToCC0 && (
68
67
  <p>
69
- <strong>Notice:</strong> The current license{' '}
70
- <i>&quot;{draftLicense}&quot;</i> will be updated to
71
- &quot;CC0&quot; when the version is created. Please see FAQ item
72
- &quot;Are there any restrictions on the uploaded data?&quot; for
73
- details.
68
+ <strong>Notice:</strong> The current license{" "}
69
+ <i>&quot;{draftLicense}&quot;</i>{" "}
70
+ will be updated to &quot;CC0&quot; when the version is created.
71
+ Please see FAQ item &quot;Are there any restrictions on the
72
+ uploaded data?&quot; for details.
74
73
  </p>
75
74
  )}
76
75
  <p>
@@ -86,34 +85,36 @@ const SnapshotRoute = ({
86
85
  label="Major"
87
86
  size="xsmall"
88
87
  className={`btn btn-default ${majorActive}`}
89
- onClick={() => setSemanticLevel('major')}
88
+ onClick={() => setSemanticLevel("major")}
90
89
  />
91
90
  <Button
92
91
  secondary={true}
93
92
  label="Minor"
94
93
  size="xsmall"
95
94
  className={`btn btn-default ${minorActive}`}
96
- onClick={() => setSemanticLevel('minor')}
95
+ onClick={() => setSemanticLevel("minor")}
97
96
  />
98
97
  <Button
99
98
  secondary={true}
100
99
  label="Patch"
101
100
  size="xsmall"
102
101
  className={`btn btn-default ${patchActive}`}
103
- onClick={() => setSemanticLevel('patch')}
102
+ onClick={() => setSemanticLevel("patch")}
104
103
  />
105
104
  </div>
106
105
  </FormRow>
107
- {latestSnapshot ? (
108
- <FormRow>
109
- <HeaderRow4>Current Changelog</HeaderRow4>
110
- <FileView
111
- datasetId={datasetId}
112
- snapshotTag={latestSnapshot.tag}
113
- path="CHANGES"
114
- />
115
- </FormRow>
116
- ) : null}
106
+ {latestSnapshot
107
+ ? (
108
+ <FormRow>
109
+ <HeaderRow4>Current Changelog</HeaderRow4>
110
+ <FileView
111
+ datasetId={datasetId}
112
+ snapshotTag={latestSnapshot.tag}
113
+ path="CHANGES"
114
+ />
115
+ </FormRow>
116
+ )
117
+ : null}
117
118
  <HeaderRow4>New Changelog</HeaderRow4>
118
119
  <p>Add CHANGES file lines describing the new version.</p>
119
120
  <EditList
@@ -1,6 +1,6 @@
1
- import React from 'react'
2
- import styled from '@emotion/styled'
3
- import '@emotion/react'
1
+ import React from "react"
2
+ import styled from "@emotion/styled"
3
+ import "@emotion/react"
4
4
 
5
5
  export const DatasetPageBorder = styled.div`
6
6
  border: 1px solid #ccc;
@@ -1,6 +1,6 @@
1
- import React from 'react'
2
- import styled from '@emotion/styled'
3
- import '@emotion/react'
1
+ import React from "react"
2
+ import styled from "@emotion/styled"
3
+ import "@emotion/react"
4
4
 
5
5
  export const DatasetPageTabContainer = styled.div`
6
6
  display: flex;
@@ -1,6 +1,6 @@
1
- import React from 'react'
2
- import styled from '@emotion/styled'
3
- import '@emotion/react'
1
+ import React from "react"
2
+ import styled from "@emotion/styled"
3
+ import "@emotion/react"
4
4
 
5
5
  const headerRowStyle = `
6
6
  margin-top: 0;
@@ -1,15 +1,15 @@
1
- import React from 'react'
2
- import { Route, Routes } from 'react-router-dom'
3
- import { DatasetDefault } from './dataset-default'
4
- import AdminDataset from './admin-datalad'
5
- import DeletePage from './delete-page'
6
- import DownloadDataset from './download-dataset'
7
- import Publish from './publish'
8
- import Share from './manage-permissions'
9
- import Snapshot from './snapshot'
10
- import AddMetadata from './add-metadata'
11
- import Derivatives from './derivatives'
12
- import { FileDisplayRoute } from '../files/file-display'
1
+ import React from "react"
2
+ import { Route, Routes } from "react-router-dom"
3
+ import { DatasetDefault } from "./dataset-default"
4
+ import AdminDataset from "./admin-datalad"
5
+ import DeletePage from "./delete-page"
6
+ import DownloadDataset from "./download-dataset"
7
+ import Publish from "./publish"
8
+ import Share from "./manage-permissions"
9
+ import Snapshot from "./snapshot"
10
+ import AddMetadata from "./add-metadata"
11
+ import Derivatives from "./derivatives"
12
+ import { FileDisplayRoute } from "../files/file-display"
13
13
 
14
14
  export const TabRoutesDraft = ({ dataset, hasEdit }) => {
15
15
  return (
@@ -1,11 +1,11 @@
1
- import React from 'react'
2
- import { Route, Routes } from 'react-router-dom'
3
- import { SnapshotDefault } from './snapshot-default'
4
- import DownloadDataset from './download-dataset'
5
- import { DeprecateSnapshotPage } from './deprecate-snapshot-page'
6
- import { FileDisplayRoute } from '../files/file-display'
7
- import AddMetadata from './add-metadata'
8
- import Derivatives from './derivatives'
1
+ import React from "react"
2
+ import { Route, Routes } from "react-router-dom"
3
+ import { SnapshotDefault } from "./snapshot-default"
4
+ import DownloadDataset from "./download-dataset"
5
+ import { DeprecateSnapshotPage } from "./deprecate-snapshot-page"
6
+ import { FileDisplayRoute } from "../files/file-display"
7
+ import AddMetadata from "./add-metadata"
8
+ import Derivatives from "./derivatives"
9
9
 
10
10
  export const TabRoutesSnapshot = ({ dataset, snapshot }) => {
11
11
  return (