@openneuro/app 4.20.4 → 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,45 +1,45 @@
1
- import React, { FC, useContext, useEffect } from 'react'
2
- import { useLocation } from 'react-router-dom'
1
+ import React, { FC, useContext, useEffect } from "react"
2
+ import { useLocation } from "react-router-dom"
3
3
  import {
4
4
  SearchPage,
5
5
  SearchResultsList,
6
- } from '@openneuro/components/search-page'
6
+ } from "@openneuro/components/search-page"
7
7
  import {
8
8
  getUnexpiredProfile,
9
9
  hasEditPermissions,
10
- } from '../authentication/profile'
11
- import { Button } from '@openneuro/components/button'
12
- import { Loading } from '@openneuro/components/loading'
10
+ } from "../authentication/profile"
11
+ import { Button } from "@openneuro/components/button"
12
+ import { Loading } from "@openneuro/components/loading"
13
13
  import {
14
- KeywordInput,
15
- AllDatasetsToggle,
16
- ModalitySelect,
17
- ShowDatasetRadios,
18
14
  AgeRangeInput,
19
- SubjectCountRangeInput,
20
- DiagnosisSelect,
21
- TaskInput,
15
+ AllDatasetsToggle,
22
16
  AuthorInput,
23
- SexRadios,
24
- DateRadios,
25
- SpeciesSelect,
26
- SectionSelect,
27
- StudyDomainInput,
28
17
  BodyPartsInput,
18
+ DateRadios,
19
+ DiagnosisSelect,
20
+ KeywordInput,
21
+ ModalitySelect,
29
22
  ScannerManufacturers,
30
23
  ScannerManufacturersModelNames,
24
+ SectionSelect,
25
+ SexRadios,
26
+ ShowDatasetRadios,
27
+ SortBySelect,
28
+ SpeciesSelect,
29
+ StudyDomainInput,
30
+ SubjectCountRangeInput,
31
+ TaskInput,
31
32
  TracerNames,
32
33
  TracerRadionuclides,
33
- SortBySelect,
34
- } from './inputs'
35
- import FiltersBlockContainer from './filters-block-container'
36
- import AggregateCountsContainer from '../pages/front-page/aggregate-queries/aggregate-counts-container'
37
- import { useCookies } from 'react-cookie'
38
- import { useSearchResults } from './use-search-results'
39
- import { SearchParamsCtx } from './search-params-ctx'
40
- import { SearchParams } from './initial-search-params'
41
- import Helmet from 'react-helmet'
42
- import AdminUser from '../authentication/admin-user.jsx'
34
+ } from "./inputs"
35
+ import FiltersBlockContainer from "./filters-block-container"
36
+ import AggregateCountsContainer from "../pages/front-page/aggregate-queries/aggregate-counts-container"
37
+ import { useCookies } from "react-cookie"
38
+ import { useSearchResults } from "./use-search-results"
39
+ import { SearchParamsCtx } from "./search-params-ctx"
40
+ import { SearchParams } from "./initial-search-params"
41
+ import Helmet from "react-helmet"
42
+ import AdminUser from "../authentication/admin-user.jsx"
43
43
 
44
44
  export interface SearchContainerProps {
45
45
  portalContent?: Record<string, any>
@@ -54,29 +54,29 @@ export const setDefaultSearch = (
54
54
  setSearchParams: (newParams: Record<string, any>) => void,
55
55
  query: URLSearchParams,
56
56
  ): void => {
57
- if (query.has('mydatasets')) {
57
+ if (query.has("mydatasets")) {
58
58
  setSearchParams(
59
59
  (prevState: SearchParams): SearchParams => ({
60
60
  ...prevState,
61
- datasetType_selected: 'My Datasets',
61
+ datasetType_selected: "My Datasets",
62
62
  }),
63
63
  )
64
64
  }
65
- if (query.has('bookmarks')) {
65
+ if (query.has("bookmarks")) {
66
66
  setSearchParams(
67
67
  (prevState: SearchParams): SearchParams => ({
68
68
  ...prevState,
69
- datasetType_selected: 'My Bookmarks',
69
+ datasetType_selected: "My Bookmarks",
70
70
  }),
71
71
  )
72
72
  }
73
73
 
74
74
  const modalitiesWithSecondaries = {
75
- MRI: ['MRI', 'Diffusion', 'Structural', 'Functional', 'ASL Perfusion'],
76
- PET: ['PET', 'Static', 'Dynamic'],
77
- EEG: ['EEG'],
78
- iEEG: ['iEEG'],
79
- MEG: ['MEG'],
75
+ MRI: ["MRI", "Diffusion", "Structural", "Functional", "ASL Perfusion"],
76
+ PET: ["PET", "Static", "Dynamic"],
77
+ EEG: ["EEG"],
78
+ iEEG: ["iEEG"],
79
+ MEG: ["MEG"],
80
80
  }
81
81
  if (
82
82
  modality &&
@@ -111,22 +111,20 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
111
111
 
112
112
  const { loading, data, fetchMore, refetch, variables, error } =
113
113
  useSearchResults()
114
- const loadMore = loading
115
- ? () => {}
116
- : () => {
117
- fetchMore({
118
- variables: {
119
- // ...variables,
120
- cursor: data?.datasets?.pageInfo.endCursor,
121
- },
122
- })
123
- }
114
+ const loadMore = loading ? () => {} : () => {
115
+ fetchMore({
116
+ variables: {
117
+ // ...variables,
118
+ cursor: data?.datasets?.pageInfo.endCursor,
119
+ },
120
+ })
121
+ }
124
122
  let numTotalResults = 0
125
123
  let resultsList = []
126
124
  let hasNextPage = false
127
125
 
128
126
  if (data?.datasets) {
129
- const edges = data.datasets.edges.filter(edge => edge)
127
+ const edges = data.datasets.edges.filter((edge) => edge)
130
128
  numTotalResults = data.datasets.pageInfo.count
131
129
  resultsList = edges
132
130
  hasNextPage = data.datasets.pageInfo.hasNextPage
@@ -135,7 +133,7 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
135
133
  return (
136
134
  <>
137
135
  <Helmet>
138
- <title>OpenNeuro - {portalContent ? modality : ''} Search</title>
136
+ <title>OpenNeuro - {portalContent ? modality : ""} Search</title>
139
137
  </Helmet>
140
138
  <SearchPage
141
139
  portalContent={portalContent}
@@ -152,8 +150,8 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
152
150
  renderSearchHeader={() => (
153
151
  <>
154
152
  {portalContent
155
- ? 'Search ' + modality + ' Portal'
156
- : 'Search All Datasets'}
153
+ ? "Search " + modality + " Portal"
154
+ : "Search All Datasets"}
157
155
  </>
158
156
  )}
159
157
  renderSearchFacets={() => (
@@ -163,11 +161,9 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
163
161
  <AllDatasetsToggle />
164
162
  </AdminUser>
165
163
  {!searchParams.searchAllDatasets && <ShowDatasetRadios />}
166
- {!portalContent ? (
167
- <ModalitySelect portalStyles={true} label="Modalities" />
168
- ) : (
169
- <ModalitySelect portalStyles={false} label="Choose Modality" />
170
- )}
164
+ {!portalContent
165
+ ? <ModalitySelect portalStyles={true} label="Modalities" />
166
+ : <ModalitySelect portalStyles={false} label="Choose Modality" />}
171
167
  <AgeRangeInput />
172
168
  <SubjectCountRangeInput />
173
169
  <DiagnosisSelect />
@@ -179,12 +175,12 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
179
175
  <SectionSelect />
180
176
  <StudyDomainInput />
181
177
  {(portalContent === undefined ||
182
- portalContent?.modality === 'PET') && (
178
+ portalContent?.modality === "PET") && (
183
179
  <>
184
180
  <TracerNames />
185
181
  </>
186
182
  )}
187
- {portalContent?.modality === 'PET' && (
183
+ {portalContent?.modality === "PET" && (
188
184
  <>
189
185
  <BodyPartsInput />
190
186
  <ScannerManufacturers />
@@ -195,34 +191,36 @@ const SearchContainer: FC<SearchContainerProps> = ({ portalContent }) => {
195
191
  </>
196
192
  )}
197
193
  renderLoading={() =>
198
- loading ? (
199
- <div className="search-loading">
200
- <Loading />
201
- </div>
202
- ) : null
203
- }
204
- renderSearchResultsList={() =>
205
- !loading && numTotalResults === 0 ? (
206
- <h3>No results: please broaden your search.</h3>
207
- ) : (
208
- <>
209
- <SearchResultsList
210
- hasEditPermissions={hasEditPermissions}
211
- items={resultsList}
212
- profile={profile}
213
- datasetTypeSelected={searchParams.datasetType_selected}
214
- />
215
- {/* TODO: make div below into display component. */}
216
- <div className="grid grid-nogutter" style={{ width: '100%' }}>
217
- {resultsList.length == 0 || !hasNextPage ? null : (
218
- <div className="col col-12 load-more m-t-10">
219
- <Button label="Load More" onClick={loadMore} />
220
- </div>
221
- )}
194
+ loading
195
+ ? (
196
+ <div className="search-loading">
197
+ <Loading />
222
198
  </div>
223
- </>
224
- )
225
- }
199
+ )
200
+ : null}
201
+ renderSearchResultsList={() =>
202
+ !loading && numTotalResults === 0
203
+ ? <h3>No results: please broaden your search.</h3>
204
+ : (
205
+ <>
206
+ <SearchResultsList
207
+ hasEditPermissions={hasEditPermissions}
208
+ items={resultsList}
209
+ profile={profile}
210
+ datasetTypeSelected={searchParams.datasetType_selected}
211
+ />
212
+ {/* TODO: make div below into display component. */}
213
+ <div className="grid grid-nogutter" style={{ width: "100%" }}>
214
+ {resultsList.length == 0 || !hasNextPage
215
+ ? null
216
+ : (
217
+ <div className="col col-12 load-more m-t-10">
218
+ <Button label="Load More" onClick={loadMore} />
219
+ </div>
220
+ )}
221
+ </div>
222
+ </>
223
+ )}
226
224
  />
227
225
  </>
228
226
  )
@@ -1,6 +1,6 @@
1
- import React, { createContext, useContext, FC, ReactNode } from 'react'
2
- import { useSearchParams } from 'react-router-dom'
3
- import initialSearchParams, { SearchParams } from './initial-search-params'
1
+ import React, { createContext, FC, ReactNode, useContext } from "react"
2
+ import { useSearchParams } from "react-router-dom"
3
+ import initialSearchParams, { SearchParams } from "./initial-search-params"
4
4
 
5
5
  export const SearchParamsCtx = createContext(null)
6
6
 
@@ -15,7 +15,7 @@ export const SearchParamsProvider: FC<SearchParamsProviderProps> = ({
15
15
 
16
16
  let searchParams
17
17
  try {
18
- const query = searchQuery.get('query')
18
+ const query = searchQuery.get("query")
19
19
  if (query) {
20
20
  searchParams = JSON.parse(query)
21
21
  }
@@ -26,10 +26,9 @@ export const SearchParamsProvider: FC<SearchParamsProviderProps> = ({
26
26
  const setSearchParams = (
27
27
  newParams: SearchParams | ((prevState: SearchParams) => SearchParams),
28
28
  ): void => {
29
- const merged =
30
- typeof newParams == 'function'
31
- ? { ...searchParams, ...newParams(searchParams) }
32
- : { ...searchParams, ...newParams }
29
+ const merged = typeof newParams == "function"
30
+ ? { ...searchParams, ...newParams(searchParams) }
31
+ : { ...searchParams, ...newParams }
33
32
  setSearch(
34
33
  {
35
34
  query: JSON.stringify(merged),
@@ -43,51 +42,53 @@ export const SearchParamsProvider: FC<SearchParamsProviderProps> = ({
43
42
  value={{
44
43
  searchParams: { ...initialSearchParams, ...searchParams },
45
44
  setSearchParams,
46
- }}>
45
+ }}
46
+ >
47
47
  {children}
48
48
  </SearchParamsCtx.Provider>
49
49
  )
50
50
  }
51
51
 
52
- export const removeFilterItem = setSearchParams => (param, value) => {
52
+ export const removeFilterItem = (setSearchParams) => (param, value) => {
53
53
  const updatedParams = {}
54
54
  switch (param) {
55
55
  /* Handle simple filter resets. */
56
- case 'datasetType_selected':
56
+ case "datasetType_selected":
57
57
  // when datasetType is unset, unset datasetStatus as well
58
- updatedParams['datasetStatus_selected'] =
59
- initialSearchParams['datasetStatus_selected']
60
- case 'modality_selected':
61
- case 'datasetStatus_selected':
62
- case 'ageRange':
63
- case 'subjectCountRange':
64
- case 'sex_selected':
65
- case 'date_selected':
66
- case 'diagnosis_selected':
67
- case 'section_selected':
68
- case 'species_selected':
58
+ updatedParams["datasetStatus_selected"] =
59
+ initialSearchParams["datasetStatus_selected"]
60
+ case "modality_selected":
61
+ case "datasetStatus_selected":
62
+ case "ageRange":
63
+ case "subjectCountRange":
64
+ case "sex_selected":
65
+ case "date_selected":
66
+ case "diagnosis_selected":
67
+ case "section_selected":
68
+ case "species_selected":
69
69
  updatedParams[param] = initialSearchParams[param]
70
- setSearchParams(prevState => ({
70
+ setSearchParams((prevState) => ({
71
71
  ...prevState,
72
72
  ...updatedParams,
73
73
  }))
74
74
  break
75
75
 
76
76
  /* Handle removal of filters in arrays. */
77
- case 'keywords':
78
- case 'authors':
79
- case 'tasks':
80
- case 'bodyParts':
81
- case 'scannerManufacturers':
82
- case 'scannerManufacturersModelNames':
83
- case 'tracerNames':
84
- case 'tracerRadionuclides':
85
- case 'studyDomains':
86
- setSearchParams(prevState => {
77
+ case "keywords":
78
+ case "authors":
79
+ case "tasks":
80
+ case "bodyParts":
81
+ case "scannerManufacturers":
82
+ case "scannerManufacturersModelNames":
83
+ case "tracerNames":
84
+ case "tracerRadionuclides":
85
+ case "studyDomains":
86
+ setSearchParams((prevState) => {
87
87
  const list = prevState[param]
88
88
  const i = list.indexOf(value)
89
- const newList =
90
- i === -1 ? list : [...list.slice(0, i), ...list.slice(i + 1)]
89
+ const newList = i === -1
90
+ ? list
91
+ : [...list.slice(0, i), ...list.slice(i + 1)]
91
92
  return {
92
93
  ...prevState,
93
94
  [param]: newList,
@@ -152,14 +153,15 @@ export const useCheckIfParamsAreSelected = (ignore: string[]): boolean => {
152
153
  const { searchParams } = useContext(SearchParamsCtx)
153
154
  const selectedParams = getSelectParams(searchParams)
154
155
 
155
- const someParamsAreSelected = Object.keys(selectedParams).some(key => {
156
+ const someParamsAreSelected = Object.keys(selectedParams).some((key) => {
156
157
  if (ignore.includes(key)) return false
157
158
  // check if a search param has been changed from it's initial value
158
- else
159
+ else {
159
160
  return (
160
161
  JSON.stringify(selectedParams[key]) !==
161
- JSON.stringify(initialSearchParams[key])
162
+ JSON.stringify(initialSearchParams[key])
162
163
  )
164
+ }
163
165
  })
164
166
  return someParamsAreSelected
165
167
  }
@@ -1,7 +1,7 @@
1
- import React, { FC } from 'react'
2
- import { Route, Routes } from 'react-router-dom'
3
- import SearchContainer from './search-container'
4
- import { portalContent } from '@openneuro/components/content'
1
+ import React, { FC } from "react"
2
+ import { Route, Routes } from "react-router-dom"
3
+ import SearchContainer from "./search-container"
4
+ import { portalContent } from "@openneuro/components/content"
5
5
 
6
6
  const SearchRoutes: FC = () => (
7
7
  <Routes>