diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cdb41d5..e7c10ec 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -24,6 +24,7 @@ "devextreme-react": "^22.2.4", "flatted": "^3.2.7", "formik": "2.2.9", + "html-react-parser": "^5.1.1", "jquery": "^3.6.4", "oidc-react": "^3.2.2", "prettyjson": "^1.2.5", @@ -32,6 +33,7 @@ "react-dom": "^18.2.0", "react-fusioncharts": "^4.0.0", "react-google-charts": "^4.0.0", + "react-html-parser": "^2.0.2", "react-json-pretty": "^2.2.0", "react-modal": "^3.16.1", "react-modal-hover": "^1.1.13", @@ -51,6 +53,7 @@ "@types/jquery": "^3.5.16", "devextreme-themebuilder": "^22.2.4", "node-sass": "^8.0.0", + "react-app-rewired": "^2.2.1", "sass-loader": "^13.2.2" } }, @@ -10349,6 +10352,84 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/html-dom-parser": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.7.tgz", + "integrity": "sha512-2YD2/yB0QgrlkBIn0CsGaRXC89E1gtuPVpiOGC52NTzPCC83n0WMdGD+5q7lpcKqbCpnWValQbovuy/NI/0kag==", + "dependencies": { + "domhandler": "5.0.3", + "htmlparser2": "9.1.0" + } + }, + "node_modules/html-dom-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -10403,6 +10484,34 @@ "node": ">= 12" } }, + "node_modules/html-react-parser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.1.1.tgz", + "integrity": "sha512-L5VK0rKN3VM7uzRH+4wxAL9elvHuCNDjyWKKjcCDR+YWW5Qr7WWSK7+e627DcePVAFi5IMqc+rAU8j/1DpC/Tw==", + "dependencies": { + "domhandler": "5.0.3", + "html-dom-parser": "5.0.7", + "react-property": "2.0.2", + "style-to-js": "1.1.10" + }, + "peerDependencies": { + "react": "0.14 || 15 || 16 || 17 || 18" + } + }, + "node_modules/html-react-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/html-webpack-plugin": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", @@ -10774,6 +10883,11 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "license": "ISC" }, + "node_modules/inline-style-parser": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz", + "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==" + }, "node_modules/insert-css": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz", @@ -15959,6 +16073,30 @@ "node": ">=14" } }, + "node_modules/react-app-rewired": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", + "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==", + "dev": true, + "dependencies": { + "semver": "^5.6.0" + }, + "bin": { + "react-app-rewired": "bin/index.js" + }, + "peerDependencies": { + "react-scripts": ">=2.1.3" + } + }, + "node_modules/react-app-rewired/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/react-bootstrap": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.6.0.tgz", @@ -16099,6 +16237,85 @@ "react": "^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0" } }, + "node_modules/react-html-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-html-parser/-/react-html-parser-2.0.2.tgz", + "integrity": "sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g==", + "dependencies": { + "htmlparser2": "^3.9.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16.0.0-0" + } + }, + "node_modules/react-html-parser/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/react-html-parser/node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/react-html-parser/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/react-html-parser/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/react-html-parser/node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/react-html-parser/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/react-html-parser/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/react-html-parser/node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, "node_modules/react-input-autosize": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz", @@ -16202,6 +16419,11 @@ "react-dom": ">=16.0.0" } }, + "node_modules/react-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz", + "integrity": "sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug==" + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -18271,6 +18493,22 @@ "webpack": "^5.0.0" } }, + "node_modules/style-to-js": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.10.tgz", + "integrity": "sha512-VC7MBJa+y0RZhpnLKDPmVRLRswsASLmixkiZ5R8xZpNT9VyjeRzwnXd2pBzAWdgSGv/pCNNH01gPCCUsB9exYg==", + "dependencies": { + "style-to-object": "1.0.5" + } + }, + "node_modules/style-to-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz", + "integrity": "sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==", + "dependencies": { + "inline-style-parser": "0.2.2" + } + }, "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", diff --git a/frontend/package.json b/frontend/package.json index 847e7ba..b232348 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -19,6 +19,7 @@ "devextreme-react": "^22.2.4", "flatted": "^3.2.7", "formik": "2.2.9", + "html-react-parser": "^5.1.1", "jquery": "^3.6.4", "oidc-react": "^3.2.2", "prettyjson": "^1.2.5", @@ -27,6 +28,7 @@ "react-dom": "^18.2.0", "react-fusioncharts": "^4.0.0", "react-google-charts": "^4.0.0", + "react-html-parser": "^2.0.2", "react-json-pretty": "^2.2.0", "react-modal": "^3.16.1", "react-modal-hover": "^1.1.13", @@ -70,6 +72,7 @@ "@types/jquery": "^3.5.16", "devextreme-themebuilder": "^22.2.4", "node-sass": "^8.0.0", + "react-app-rewired": "^2.2.1", "sass-loader": "^13.2.2" } } diff --git a/frontend/public/index.html b/frontend/public/index.html index b4cae53..799bff3 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -24,7 +24,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - Beacon network demo + ELIXIR Beacon network demo diff --git a/frontend/src/App.css b/frontend/src/App.css index 41453e8..e0b455d 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -15,15 +15,61 @@ html { height: 100vh; } +.resultSetsDiv2 label h2 { + font-size: 10px; +} .skipLimit { margin-top: 10px; } +.switchDescendants2 h3 { + font-size: 10px; + width: fit-content; + margin-top: 0px; + margin-bottom: 0px; +} +.switchDescendants2 { + display: flex; + justify-content: center; + align-content: center; + flex-wrap: nowrap; + align-items: center; + margin-left: 10px; +} + +.resultSetsDiv2 .multi-switch-container { + margin-left: -5px; + margin-top: 8px; +} + +.containerExtraSections2 { + display: flex; + flex-direction: column; + margin-left: -32%; + margin-top: 10px; + margin-right: 14%; +} + +.advSearch-module2 label h2 { + font-size: 10px; +} +.advSearch-module2 { + display: flex; + align-items: center; + justify-content: flex-start; + margin-top: 10px; + margin-bottom: 10px; +} + +.extraSectionVariantFormMode { + display: flex; +} + .version { margin-bottom: 19px; margin-right: 46px; margin-top: 7px; - color: rgb(68, 99, 176) !important; + color: rgb(102 116 152) !important; font-weight: 700 !important; } @@ -47,6 +93,20 @@ html { font-variant-caps: all-petite-caps; } +.modeVariantsBarMode { + /* margin-bottom: 60px; */ + margin-top: -15px; + margin-bottom: 31px; + color: rgba(12, 16, 64, 0.606); + font-size: 16px; + font-feature-settings: 'pcap', 'c2pc', "pcap", "c2pc"; + font-variant-caps: all-petite-caps; +} + +.modeVariantsBarMode:hover h2 { + color: rgb(236, 149, 0) !important; +} + .modeVariants:hover h2 { color: rgb(236, 149, 0) !important; } @@ -60,6 +120,7 @@ html { .resultSetsDiv { display: flex; margin-top: 5px; + align-items: center; } .containerTableResults { @@ -85,14 +146,15 @@ html { display: flex; align-items: center; margin-left: 10px; + margin-top: 5px; } .switchDescendants h3 { color: #e16e00; text-transform: uppercase; margin-left: 3px !important; - margin-top: 17px; - font-size: 14px; + margin-top: 10px; + font-size: 12px; } .container-fluid { @@ -223,6 +285,7 @@ html { sans-serif; } + .labelVariantsTittle { font-size: 16px; margin-bottom: 27px; @@ -593,7 +656,7 @@ select { align-items: center; } -.resultSet { +.resultSet2 { margin-top: -22px; } @@ -647,7 +710,6 @@ hr { margin-left: 20px; } - .logos { display: flex; width: 100vw; @@ -1029,23 +1091,77 @@ h5 { line-height: 30px; padding: 2px; } +@media (max-width: 1409px) { + .containerExtraSections2 { + display: flex; + flex-direction: column; + margin-left: -12%; + margin-top: 9px; + margin-right: 12%; + } +} +@media (max-width: 1000px) { + .extraSectionVariantFormMode { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + align-content: center; + } + .containerExtraSections2 { + display: flex; + flex-direction: column; + /* margin-left: -12%; */ + margin-top: 9px; + /* margin-right: 12%; */ + margin-left: 0px; + margin-right: 0px; + } + + .resultset2 { + display: flex; + align-items: flex-end; + justify-content: center; + width: 100vw; + background: #e0e7ef; + padding: 17px; + } + + .resultSetsDiv2 { + margin-right: 25px; + } + + .advSearch-module2 { + margin-right: 21px; + } +} -@media (max-width: 800px) { +@media (max-width: 760px) { .container1 a { display: flex; font-size: 11px; text-underline-offset: 1px; } + .resultset2 { + display: flex; + align-items: flex-start; + width: 244px; + flex-direction: column; + justify-content: center; + /* margin-left: 46px; */ + background: #e0e7ef; + padding-top: 10px; + padding-bottom: 1px; + } + .version { margin-bottom: 46px; - margin-right: 35px; + margin-right: 36px; margin-top: -35px; - color: rgb(68, 99, 176) !important; + color: rgb(102 116 152) !important; font-weight: 600; } - - .inputVariants { height: 24px; border: 1.5px solid #dfdfdf; @@ -1092,10 +1208,27 @@ h5 { color: #e16e00; text-transform: uppercase; margin-left: 3px !important; - margin-top: 14px; - font-size: 12px; + margin-top: 6px; + font-size: 10px; + } + .css-1ycxvqq-MuiSwitch-root { + display: -webkit-inline-box; + display: -webkit-inline-flex; + display: -ms-inline-flexbox; + display: inline-flex; + width: 40px; + height: 24px; + overflow: hidden; + padding: 7px; + box-sizing: border-box; + position: relative; + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; + z-index: 0; + margin-top: -3px; + vertical-align: middle; } - .ReactModal__Content--after-open { width: 269px; font-size: 12px; @@ -1118,7 +1251,7 @@ h5 { padding: 2px; } - .ReactModal__Overlay{ + .ReactModal__Overlay { z-index: 3; } @@ -1173,7 +1306,8 @@ h5 { justify-content: center; align-items: center; z-index: 0; - height: 34px; + height: 84px; + margin-top: -21px; } .bulbLogo { @@ -1234,7 +1368,6 @@ h5 { font-size: 9px; margin-left: 10px !important; background: #8dbde0; - } .bulbExample { @@ -1246,13 +1379,12 @@ h5 { align-items: center; } - .NavlinkVerifier{ + .NavlinkVerifier { color: rgba(12, 16, 64, 0.606); font-size: 15px !important; - font-feature-settings: 'pcap', 'c2pc', "pcap", "c2pc"; + font-feature-settings: 'pcap', 'c2pc', 'pcap', 'c2pc'; font-variant-caps: all-petite-caps; margin-top: 0px; font-size: 12px !important; } - } diff --git a/frontend/src/components/Analyses/AnalysesResults.js b/frontend/src/components/Analyses/AnalysesResults.js index 2445645..5210885 100644 --- a/frontend/src/components/Analyses/AnalysesResults.js +++ b/frontend/src/components/Analyses/AnalysesResults.js @@ -178,10 +178,7 @@ function AnalysesResults (props) { } if (token === null) { - res = await axios.post( - configData.API_URL + '/analyses', - jsonData1 - ) + res = await axios.post(configData.API_URL + '/analyses', jsonData1) } else { const headers = { Authorization: `Bearer ${token}` } @@ -197,14 +194,13 @@ function AnalysesResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { if (element.id && element.id !== '') { if (resultsPerDataset.length > 0) { - console.log(resultsPerDataset) resultsPerDataset.forEach(element2 => { if (element2[0] === element.beaconId) { element2[1].push(element.id) @@ -217,7 +213,16 @@ function AnalysesResults (props) { [element.exists], [element.resultsCount] ] - resultsPerDataset.push(arrayResultsPerDataset) + let found = false + + resultsPerDataset.forEach(element => { + if (element[0] === arrayResultsPerDataset[0]) { + found = true + } + }) + if (found === false) { + resultsPerDataset.push(arrayResultsPerDataset) + } } }) } else { @@ -227,6 +232,7 @@ function AnalysesResults (props) { [element.exists], [element.resultsCount] ] + resultsPerDataset.push(arrayResultsPerDataset) } } @@ -275,10 +281,7 @@ function AnalysesResults (props) { if (token === null) { console.log('Querying without token') - res = await axios.post( - configData.API_URL + '/analyses', - jsonData2 - ) + res = await axios.post(configData.API_URL + '/analyses', jsonData2) } else { console.log('Querying WITH token') const headers = { Authorization: `Bearer ${token}` } @@ -295,25 +298,19 @@ function AnalysesResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) element2[3].push(element.resultsCount) } else { - console.log('hola') - let arrayResultsPerDataset = [ element.beaconId, [element.id], @@ -321,13 +318,10 @@ function AnalysesResults (props) { [element.resultsCount] ] let found = false - - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -341,7 +335,6 @@ function AnalysesResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -366,9 +359,10 @@ function AnalysesResults (props) { } } } catch (error) { - setError('No results. Please check the query and the connection and retry') + setError( + 'No results. Please check the query and the connection and retry' + ) setTimeOut(true) - console.log(error) } } apiCall() @@ -439,10 +433,10 @@ function AnalysesResults (props) { results={results} resultsPerDataset={resultsPerDataset} beaconsList={beaconsList} + resultSets={props.resultSets} > )} - {show3 && error &&

  {error}

} {show2 && !error && (
@@ -452,6 +446,7 @@ function AnalysesResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} >
)} @@ -463,6 +458,7 @@ function AnalysesResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} > )} diff --git a/frontend/src/components/Biosamples/BiosamplesResults.js b/frontend/src/components/Biosamples/BiosamplesResults.js index 3ca7df6..2da0597 100644 --- a/frontend/src/components/Biosamples/BiosamplesResults.js +++ b/frontend/src/components/Biosamples/BiosamplesResults.js @@ -197,14 +197,13 @@ function BiosamplesResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { if (element.id && element.id !== '') { if (resultsPerDataset.length > 0) { - console.log(resultsPerDataset) resultsPerDataset.forEach(element2 => { if (element2[0] === element.beaconId) { element2[1].push(element.id) @@ -217,7 +216,15 @@ function BiosamplesResults (props) { [element.exists], [element.resultsCount] ] - resultsPerDataset.push(arrayResultsPerDataset) + let found = false + resultsPerDataset.forEach(element => { + if (element[0] === arrayResultsPerDataset[0]) { + found = true + } + }) + if (found === false) { + resultsPerDataset.push(arrayResultsPerDataset) + } } }) } else { @@ -295,25 +302,19 @@ function BiosamplesResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) element2[3].push(element.resultsCount) } else { - console.log('hola') - let arrayResultsPerDataset = [ element.beaconId, [element.id], @@ -322,12 +323,10 @@ function BiosamplesResults (props) { ] let found = false - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -341,7 +340,6 @@ function BiosamplesResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -368,7 +366,6 @@ function BiosamplesResults (props) { } catch (error) { setError('Connection error. Please retry') setTimeOut(true) - console.log(error) } } apiCall() @@ -439,6 +436,7 @@ function BiosamplesResults (props) { results={results} resultsPerDataset={resultsPerDataset} beaconsList={beaconsList} + resultSets={props.resultSets} > )} @@ -452,6 +450,7 @@ function BiosamplesResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} > )} @@ -463,6 +462,7 @@ function BiosamplesResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} > )} diff --git a/frontend/src/components/Cohorts/Cohorts.js b/frontend/src/components/Cohorts/Cohorts.js index 785bfb9..de252ae 100644 --- a/frontend/src/components/Cohorts/Cohorts.js +++ b/frontend/src/components/Cohorts/Cohorts.js @@ -17,7 +17,7 @@ function Cohorts (props) { const [optionsCohorts, setOptionsCohorts] = useState([]) - const [count, setCount] = useState('II') + const [count, setCount] = useState(2) const [selectedCohorts, setSelectedCohorts] = useState([]) @@ -77,13 +77,33 @@ function Cohorts (props) { const fetchDataCohorts = async () => { try { let res = await axios.get(configData.API_URL + '/cohorts') - console.log(res) res.data.response.collections.forEach(element => { - let obj = { - value: element.id, - label: element.id + if (optionsCohorts.length > 0) { + optionsCohorts.forEach(cohort => { + if (cohort.value === element.id) { + let obj = { + value: element.id + count, + label: element.id + } + setCount(count + 1) + element.id = element.id + count + optionsCohorts.push(obj) + } else { + let obj = { + value: element.id, + label: element.id + } + optionsCohorts.push(obj) + } + }) + } else { + let obj = { + value: element.id, + label: element.id + } + optionsCohorts.push(obj) } - optionsCohorts.push(obj) + arrayCohorts.push(element) const timer = setTimeout(() => { setTriggerLayout(true) @@ -92,8 +112,7 @@ function Cohorts (props) { }) } catch (error) { setTimeOut(true) - console.log(error) - setError('Unexpected error. Please retry') + setError('No information available right now') } } fetchDataCohorts().catch(console.error) @@ -102,98 +121,6 @@ function Cohorts (props) { } }, []) - useEffect(() => { - let values = [] - let labels = [] - if (response !== '') { - values = Object.values(response) - labels = Object.keys(response) - } - if (values.length > 0 && labels.length > 0) { - var options = { - chart: { - type: 'pie' - }, - title: { - text: valueToFilter - }, - colors: [ - '#4dc5ff', - '#FF96EF', - '#7DF9FF', - '#8B0000', - '#AAFF00', - '#98FB98', - '#009E60', - '#AF2BFF', - '#FF0000', - '#FF69B4', - '#13D3B6', - '#800080', - '#FA8072', - '#33b2df', - '#546E7A', - '#FEF300', - '#2b908f', - '#FE00FA', - '#FE6800', - '#69d2e7', - '#13d8aa', - '#A5978B', - '#f9a3a4', - '#FF4500', - '#51f08e', - '#b051f0', - '#CCFF33', - '#FF66CC', - '#FF3333', - '#6633CC', - '#CD853F', - '#3333FF', - '#FF3333', - '#BF40BF', - 'DF00F9', - '38ED61', - '#FCF55F', - '#00A9D1', - '#041FCE', - '#B4B5BC', - '#C1E701', - '#FF8604' - ], - series: values, - labels: labels - } - if (selectedFilter === 'dis_eth') { - var chartFiltered = new ApexCharts( - document.querySelector('#chartFilteredDisease'), - options - ) - chartFiltered.render() - } else if (selectedFilter === 'dis_sex') { - var chartFiltered = new ApexCharts( - document.querySelector('#chartFilteredDisease2'), - options - ) - - chartFiltered.render() - } else if (selectedFilter === 'eth_dis') { - var chartFiltered = new ApexCharts( - document.querySelector('#chartFilteredEthnicity'), - options - ) - - chartFiltered.render() - } else if (selectedFilter === 'eth_sex') { - var chartFiltered = new ApexCharts( - document.querySelector('#chartFilteredEthnicity2'), - options - ) - chartFiltered.render() - } - } - }, [response]) - // const submitFilters = e => { // if (selectedFilter === 'dis_eth') { // setShowDis2(false) @@ -251,12 +178,8 @@ function Cohorts (props) { // } useEffect(() => { - console.log(selectedCohorts) - console.log(arrayCohorts) const apiCall = () => { arrayCohorts.forEach(element => { - console.log(element) - if (element.id === selectedCohorts.value) { if (element.collectionEvents) { element.collectionEvents.forEach(element2 => { @@ -278,11 +201,10 @@ function Cohorts (props) { let entriesGeo = '' let valuesDiseases = '' let labelsDiseases = '' - + // for (var i = 0; i < res.data.response.collections.length; i++) { if (element2.eventGenders !== undefined) { sexs = element2.eventGenders.distribution.genders - setDataAvailable(true) } if (element2.eventEthnicities !== undefined) { @@ -340,7 +262,7 @@ function Cohorts (props) { if (labelsEthnicities !== '') { setLabelsEthnicities(labelsEthnicities) } - console.log(geoData) + if (geoData !== '') { valuesGeo = Object.values(geoData) labelsGeo = Object.keys(geoData) diff --git a/frontend/src/components/Cohorts/CohortsModule.js b/frontend/src/components/Cohorts/CohortsModule.js index 46fe51d..d9ec2c1 100644 --- a/frontend/src/components/Cohorts/CohortsModule.js +++ b/frontend/src/components/Cohorts/CohortsModule.js @@ -19,7 +19,6 @@ function CohortsModule (props) { props.setShowGraphs(true) } const handleChangeCohorts = selectedOption => { - console.log(selectedOption) setSelected(selectedOption) props.setSelectedCohorts(selectedOption) } @@ -62,4 +61,4 @@ function CohortsModule (props) { ) } -export default CohortsModule +export default CohortsModule \ No newline at end of file diff --git a/frontend/src/components/CrossQueries/CrossQueries.css b/frontend/src/components/CrossQueries/CrossQueries.css index a9c08bf..c9124d9 100644 --- a/frontend/src/components/CrossQueries/CrossQueries.css +++ b/frontend/src/components/CrossQueries/CrossQueries.css @@ -91,7 +91,7 @@ h5:hover { padding: 20px; } -@media (max-width: 800px) { +@media (max-width: 760px) { select { font-size: 11px; width: 104px; diff --git a/frontend/src/components/CrossQueries/CrossQueries.js b/frontend/src/components/CrossQueries/CrossQueries.js index ee14c34..42b3beb 100644 --- a/frontend/src/components/CrossQueries/CrossQueries.js +++ b/frontend/src/components/CrossQueries/CrossQueries.js @@ -66,7 +66,6 @@ function CrossQueries () { }) } catch (error) { setError('Not found. Please retry') - console.log(error) } } diff --git a/frontend/src/components/Datasets/ResultsDatasets.css b/frontend/src/components/Datasets/ResultsDatasets.css index ecee78b..9ef02b2 100644 --- a/frontend/src/components/Datasets/ResultsDatasets.css +++ b/frontend/src/components/Datasets/ResultsDatasets.css @@ -4,6 +4,13 @@ flex-wrap: wrap; justify-content: center; } + +p a { + width: fit-content; + display: inline !important; + margin: 0px !important; +} + .logoBeacon { height: 30px; margin-top: 7px; @@ -54,6 +61,14 @@ display: flex; /* align-items: center; */ justify-content: center; + margin-top: 5px !important; + margin-bottom: 5px !important; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + color: rgba(12, 16, 64, 0.606); + font-size: 12px; + font-weight: 500; } .tittleResults h2 { @@ -153,27 +168,18 @@ display: flex; align-items: center; justify-content: center; - height: 50%; + height: 100%; width: 100%; } .resultSetsContainer h6 { background: #86e4a8; border-radius: 2px; - width: fit-content; + width: fit-content !important; margin-left: 5px; padding: 3px; } -.tittle h2 { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', - 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', - sans-serif; - color: rgba(12, 16, 64, 0.606); - font-size: 12px; - font-weight: 600; -} - .tittleResults h2 { height: 46px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', diff --git a/frontend/src/components/Datasets/ResultsDatasets.js b/frontend/src/components/Datasets/ResultsDatasets.js index 9f415d5..fb032c7 100644 --- a/frontend/src/components/Datasets/ResultsDatasets.js +++ b/frontend/src/components/Datasets/ResultsDatasets.js @@ -30,9 +30,6 @@ function ResultsDatasets(props) { }, [props.trigger]) - - - return (
@@ -48,27 +45,25 @@ function ResultsDatasets(props) {

{result.response.organization.name}


- {result.meta.beaconId === 'org.ega-archive.ga4gh-approval-beacon-test' &&

- This Beacon is based on synthetic data hosted at the EGA. The dataset contains 2504 samples including genetic data based on 1K Genomes data, and 76 individual attributes and phenotypic data derived from UKBiobank. -

} - {result.meta.beaconId !== 'org.ega-archive.ga4gh-approval-beacon-test' &&

{result.response.description}

} + {!result.response.description.includes('{result.response.description}

} + {result.response.description.includes('
}
{result.meta.beaconId === 'org.ega-archive.ga4gh-approval-beacon-test' && - Beacon API} + Beacon API} {result.meta.beaconId === 'es.elixir.bsc.beacon' && - Beacon API} + Beacon API} {result.meta.beaconId === 'org.progenetix' && - Beacon API} + Beacon API} {result.meta.beaconId !== 'es.elixir.bsc.beacon' && result.meta.beaconId !== 'org.progenetix' && result.meta.beaconId !== 'org.ega-archive.ga4gh-approval-beacon-test' && - Beacon API} + Beacon API} {result.meta.beaconId === 'es.elixir.bsc.beacon' && - Visit us} + Visit us} {result.meta.beaconId !== 'es.elixir.bsc.beacon' && - Visit us} + Visit us} {result.meta.beaconId !== 'es.elixir.bsc.beacon' && - Contact us} + Contact us} {result.meta.beaconId === 'es.elixir.bsc.beacon' && - Contact us} + Contact us}
) diff --git a/frontend/src/components/FilteringTerms/FilteringTerms.js b/frontend/src/components/FilteringTerms/FilteringTerms.js index 2e56282..240b9c3 100644 --- a/frontend/src/components/FilteringTerms/FilteringTerms.js +++ b/frontend/src/components/FilteringTerms/FilteringTerms.js @@ -299,9 +299,6 @@ function FilteringTerms (props) { backspaceDelete={true} removeTag={remove} /> - {error && ( -

No filtering terms available. Please check your connection

- )} {!error && (
diff --git a/frontend/src/components/GenomicVariations/GenomicVariations.css b/frontend/src/components/GenomicVariations/GenomicVariations.css index 72de2fc..3d94390 100644 --- a/frontend/src/components/GenomicVariations/GenomicVariations.css +++ b/frontend/src/components/GenomicVariations/GenomicVariations.css @@ -2,4 +2,8 @@ margin: 37px; display: flex; justify-content: center; +} + +.modeVariantsQueries2{ + margin-top: -52px; } \ No newline at end of file diff --git a/frontend/src/components/GenomicVariations/VariantsResults.js b/frontend/src/components/GenomicVariations/VariantsResults.js index 22cbf3f..ac69faa 100644 --- a/frontend/src/components/GenomicVariations/VariantsResults.js +++ b/frontend/src/components/GenomicVariations/VariantsResults.js @@ -26,7 +26,7 @@ function VariantsResults (props) { const [queryArray, setQueryArray] = useState([]) const [beaconsList, setBeaconsList] = useState([]) - const [limit, setLimit] = useState(10) + const [limit, setLimit] = useState(0) const [skip, setSkip] = useState(0) const [showVariantsResults, setShowVariantsResults] = useState(false) @@ -50,7 +50,6 @@ function VariantsResults (props) { } const handleTypeResults3 = () => { - console.log(error) setShow3(true) setShow1(false) setShow2(false) @@ -195,6 +194,9 @@ function VariantsResults (props) { configData.API_URL + '/g_variants', jsonData1 ) + // Object.defineProperty(res.data.response.resultSets[0], 'beaconId', { + // value: 'es.chipdb.cnic.beacon' + //}) } else { const headers = { Authorization: `Bearer ${token}` } @@ -210,14 +212,13 @@ function VariantsResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { if (element.id && element.id !== '') { if (resultsPerDataset.length > 0) { - console.log(resultsPerDataset) resultsPerDataset.forEach(element2 => { if (element2[0] === element.beaconId) { element2[1].push(element.id) @@ -230,7 +231,15 @@ function VariantsResults (props) { [element.exists], [element.resultsCount] ] - resultsPerDataset.push(arrayResultsPerDataset) + let found = false + resultsPerDataset.forEach(element => { + if (element[0] === arrayResultsPerDataset[0]) { + found = true + } + }) + if (found === false) { + resultsPerDataset.push(arrayResultsPerDataset) + } } }) } else { @@ -278,9 +287,7 @@ function VariantsResults (props) { requestedGranularity: 'record' } } - console.log(jsonData2) jsonData2 = JSON.stringify(jsonData2) - console.log(jsonData2) let token = null if (auth.userData === null) { token = getStoredToken() @@ -294,11 +301,9 @@ function VariantsResults (props) { configData.API_URL + '/g_variants', jsonData2 ) - console.log(res) } else { console.log('Querying WITH token') const headers = { Authorization: `Bearer ${token}` } - res = await axios.post( configData.API_URL + '/g_variants', jsonData2, @@ -311,25 +316,19 @@ function VariantsResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) element2[3].push(element.resultsCount) } else { - console.log('hola') - let arrayResultsPerDataset = [ element.beaconId, [element.id], @@ -337,13 +336,10 @@ function VariantsResults (props) { [element.resultsCount] ] let found = false - - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -357,7 +353,6 @@ function VariantsResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -443,7 +438,7 @@ function VariantsResults (props) { } var jsonData1 = {} - + if (props.sequenceSubmitted) { jsonData1 = { meta: { @@ -516,7 +511,6 @@ function VariantsResults (props) { configData.API_URL + '/g_variants', jsonData1 ) - console.log(jsonData1) } else { const headers = { Authorization: `Bearer ${token}` } res = await axios.post( @@ -529,18 +523,14 @@ function VariantsResults (props) { setTimeOut(true) if (!res.data.responseSummary.numTotalResults) { setTimeOut(true) - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) @@ -553,13 +543,10 @@ function VariantsResults (props) { [element.resultsCount] ] let found = false - - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -573,7 +560,6 @@ function VariantsResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -600,7 +586,6 @@ function VariantsResults (props) { } catch (error) { setError('Connection error. Please retry') setTimeOut(true) - console.log(error) } } apiCall() @@ -642,10 +627,11 @@ function VariantsResults (props) { results={results} resultsPerDataset={resultsPerDataset} beaconsList={beaconsList} + resultSets={props.resultSets} >
)} - + {show3 && error &&

  {error}

} {show2 && logInRequired === false && !error && ( @@ -656,11 +642,12 @@ function VariantsResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} > )} - {show1 && logInRequired === false && !error &&( + {show1 && logInRequired === false && !error && (
)} diff --git a/frontend/src/components/Individuals/Individuals.css b/frontend/src/components/Individuals/Individuals.css index b3256d2..62d6862 100644 --- a/frontend/src/components/Individuals/Individuals.css +++ b/frontend/src/components/Individuals/Individuals.css @@ -40,6 +40,11 @@ label { margin-top: 12px; } +.multi-switch-container { + background-color: white; + border-color: #6e8baf !important; +} + .skipLimitButton { width: fit-content; background-color: rgb(228 223 223); @@ -331,7 +336,7 @@ h4 { .multi-switch-container { width: 237px !important; background-color: white; - border-color: black; + border-color: #6e8baf; height: 29px !important; margin-left: 14px; z-index: 0; @@ -413,18 +418,18 @@ h4 { .multi-switch-container { width: 219px !important; background-color: white; - border-color: black; + border-color: #6e8baf; height: 29px !important; margin-left: 14px; z-index: 0; } } -@media (max-width: 763px) { +@media (max-width: 797px) { .multi-switch-container { width: 219px !important; background-color: white; - border-color: black; + border-color: #6e8baf; height: 29px !important; margin-left: -4px; z-index: 0; diff --git a/frontend/src/components/Individuals/IndividualsResults.js b/frontend/src/components/Individuals/IndividualsResults.js index 4fbb422..8ab61cc 100644 --- a/frontend/src/components/Individuals/IndividualsResults.js +++ b/frontend/src/components/Individuals/IndividualsResults.js @@ -197,14 +197,13 @@ function IndividualsResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { if (element.id && element.id !== '') { if (resultsPerDataset.length > 0) { - console.log(resultsPerDataset) resultsPerDataset.forEach(element2 => { if (element2[0] === element.beaconId) { element2[1].push(element.id) @@ -217,7 +216,15 @@ function IndividualsResults (props) { [element.exists], [element.resultsCount] ] - resultsPerDataset.push(arrayResultsPerDataset) + let found = false + resultsPerDataset.forEach(element => { + if (element[0] === arrayResultsPerDataset[0]) { + found = true + } + }) + if (found === false) { + resultsPerDataset.push(arrayResultsPerDataset) + } } }) } else { @@ -282,14 +289,11 @@ function IndividualsResults (props) { } else { console.log('Querying WITH token') const headers = { Authorization: `Bearer ${token}` } - console.log(headers) res = await axios.post( configData.API_URL + '/individuals', jsonData2, { headers: headers } ) - console.log(res) - console.log(jsonData2) } setTimeOut(true) @@ -297,25 +301,19 @@ function IndividualsResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) element2[3].push(element.resultsCount) } else { - console.log('hola') - let arrayResultsPerDataset = [ element.beaconId, [element.id], @@ -323,13 +321,10 @@ function IndividualsResults (props) { [element.resultsCount] ] let found = false - - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -343,7 +338,6 @@ function IndividualsResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -370,7 +364,6 @@ function IndividualsResults (props) { } catch (error) { setError('Connection error. Please retry') setTimeOut(true) - console.log(error) } } apiCall() @@ -441,12 +434,12 @@ function IndividualsResults (props) { results={results} resultsPerDataset={resultsPerDataset} beaconsList={beaconsList} + resultSets={props.resultSets} > )} - {show3 && logInRequired === true &&

{messageLoginFullResp}

} {show3 && error &&

  {error}

} - {show2 && ( + {show2 && !error && (
)} - {show1 && ( + {show1 && !error && (
)} diff --git a/frontend/src/components/Layout/Layout.js b/frontend/src/components/Layout/Layout.js index 6f97e2f..577a579 100644 --- a/frontend/src/components/Layout/Layout.js +++ b/frontend/src/components/Layout/Layout.js @@ -193,7 +193,8 @@ function Layout (props) { setError('No filtering terms now available') } } catch (error) { - console.log(error) + setError('No filtering terms now available for Individuals collection') + setTimeOut(true) } } else if (props.collection === 'Cohorts') { try { @@ -208,7 +209,8 @@ function Layout (props) { setError('No filtering terms now available') } } catch (error) { - console.log(error) + setError('No filtering terms now available for Cohorts collection') + setTimeOut(true) } } else if (props.collection === 'Variant') { try { @@ -223,8 +225,8 @@ function Layout (props) { setError('No filtering terms now available') } } catch (error) { - console.log(error) - setError('No filtering terms now available') + setError('No filtering terms now available for Variant collection') + setTimeOut(true) } } else if (props.collection === 'Analyses') { try { @@ -239,7 +241,8 @@ function Layout (props) { setError('No filtering terms now available') } } catch (error) { - console.log(error) + setError('No filtering terms now available for Analyses collection') + setTimeOut(true) } } else if (props.collection === 'Runs') { try { @@ -252,7 +255,8 @@ function Layout (props) { setError('No filtering terms now available') } } catch (error) { - console.log(error) + setError('No filtering terms now available for Runs collection') + setTimeOut(true) } } else if (props.collection === 'Biosamples') { try { @@ -264,10 +268,12 @@ function Layout (props) { setFilteringTerms(res) setResults(null) } else { + setTimeOut(true) setError('No filtering terms now available') } } catch (error) { - console.log(error) + setError('No filtering terms now available for Biosamples collection') + setTimeOut(true) } } @@ -411,7 +417,7 @@ function Layout (props) { setPlaceholder('Search for any cohort') } else if (props.collection === 'Variant') { setPlaceholder('filtering term comma-separated') - setExtraIndividuals(false) + setExtraIndividuals(true) setShowVariants(true) } else if (props.collection === 'Analyses') { setPlaceholder('filtering term comma-separated') @@ -469,8 +475,7 @@ function Layout (props) { if (queryAux !== query) { setTriggerQuery(!triggerQuery) } - console.log(query) - + setExampleQ([]) if (query === '1' || query === '') { @@ -516,18 +521,28 @@ function Layout (props) { BEACON VALIDATOR -
- {/* + {/* cinecaLogo */} - + elixirLogo + {/* + impactLogo + */}

v0.5.0

@@ -547,7 +562,8 @@ function Layout (props) { bottom: 0, zIndex: 3, backgroundColor: 'rgba(255, 255, 255, 0.75)' - }}} + } + }} > + )} +
+ {cohorts === false && + props.collection !== 'Variant' && + showBar === true && (
)} - {props.collection === 'Cohorts' && ( - - )} + {props.collection === 'Variant' && showBar === false && ( +
+ + search(e)} + aria-label='Search' + /> + + + +
+ )} + {props.collection === 'Cohorts' && ( + + )} +
+ {showBar === true && props.collection !== 'Variant' && ( +
+
+ {cohorts === false && + props.collection !== '' && + showBar === true && ( +
+ + bulbIcon +
+ {exampleQ[0] && + exampleQ.map(result => { + return ( +
+ +
+ ) + })} +
+
+ )} + {props.collection !== '' && showBar === true && ( + + )} +
)} - -
-
- {cohorts === false && props.collection !== '' && showBar === true && ( + {showBar === false && props.collection === 'Variant' && ( +
+
- )} - {props.collection !== '' && showBar === true && ( + - )} +
-
- {showVariants === true && showBar === true && ( - )} - {showVariants === true && showBar === false && ( + + {showVariants === true && showBar === true && ( )}
- {showExtraIndividuals && ( + {!showVariants && ( +
+ {showButton && ( + + )} + {!showButton && ( + + )} + {showOptions && ( +
+
+
+
+
+
+ + {resultSet === 'HIT' && ( + + )} + {resultSet === 'MISS' && ( + + )} + {resultSet === 'NONE' && ( + + )} + {resultSet === 'ALL' && ( + + )} +
+
+ + setChecked2(!checked2)} + /> + + {checked2 && ( + + )} +
+
+ +
+

False

+ +

True

+
+
+
+
+ {expansionSection === false && cohorts === false && ( + + )} +
+
+
+
+
+ )} +
+ )} + {showVariants && showBar === false && (
{showButton && ( )} - {showVariants && showBar === false && hideForm === false && ( -
-
- - - - - - - - - -
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- setSequenceSub(true)} - /> -
-
-
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - {' '} -
-
-

OR

-
-
- - -
-
- - + {showVariants && showBar === true && hideForm === false && ( +
+
+
+
+ +
+
+
+ + {resultSet === 'HIT' && ( + + )} + {resultSet === 'MISS' && ( + + )} + {resultSet === 'NONE' && ( + + )} + {resultSet === 'ALL' && ( + + )} +
+
+ + setChecked2(!checked2)} + /> + + {checked2 && ( + + )} +
+
+ +
+

False

+ +

True

+
+
-
-
-

OR

- - -
-
- setRangeSub(true)} - /> -
-
-
- -
- - -
-
- - -
-
- - -
-
- setGeneSub(true)} - /> -
-
+ +
- +
+
+ + + + + + + + + +
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ setSequenceSub(true)} + /> +
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + {' '} +
+
+

OR

+
+
+ + +
+
+ + +
+
+
+
+

OR

+ + +
+
+ setRangeSub(true)} + /> +
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ setGeneSub(true)} + /> +
+
+
+
+
+ )} @@ -1087,7 +1470,8 @@ function Layout (props) { bottom: 0, zIndex: 3, backgroundColor: 'rgba(255, 255, 255, 0.75)' - }}} + } + }} > - -

Help for alphanumerical and numerical queries.

+ + + - - )} - - ) - })} + )} + + ) + })} )} {props.show === 'full' && result[2] === true && ( diff --git a/frontend/src/components/Results/BiosamplesResults/TableResultsBiosamples.js b/frontend/src/components/Results/BiosamplesResults/TableResultsBiosamples.js index de25e47..76db63a 100644 --- a/frontend/src/components/Results/BiosamplesResults/TableResultsBiosamples.js +++ b/frontend/src/components/Results/BiosamplesResults/TableResultsBiosamples.js @@ -39,6 +39,7 @@ function TableResultsBiosamples (props) { const [resultsSelectedFinal, setResultsSelectedFinal] = useState([]) const [openDatasetArray, setOpenDataset] = useState([]) + const [openDatasetArray2, setOpenDataset2] = useState([]) const [editable, setEditable] = useState([]) @@ -46,6 +47,7 @@ function TableResultsBiosamples (props) { const [trigger2, setTrigger2] = useState(false) const [triggerArray, setTriggerArray] = useState([]) + const [triggerArray2, setTriggerArray2] = useState([]) const getSelectedRowsToExport = ({ apiRef }) => { const selectedRowIds = selectedGridRowsSelector(apiRef) @@ -57,12 +59,14 @@ function TableResultsBiosamples (props) { } const handleClickDatasets = e => { - console.log(e) - openDatasetArray[e] = true - console.log(openDatasetArray) triggerArray[e] = true - console.log(triggerArray) + setTrigger(!trigger) + } + + const handleClickDatasets2 = e => { + openDatasetArray2[e] = true + triggerArray2[e] = true setTrigger(!trigger) } @@ -221,7 +225,6 @@ function TableResultsBiosamples (props) { }) resultsSelectedFinal.forEach((element, index) => { if (element[1] !== undefined) { - console.log(element[0]) let biosampleStatus_id = '' let biosampleStatus_label = '' let stringBiosampleStatus = '' @@ -831,12 +834,9 @@ function TableResultsBiosamples (props) { if (stringSampleOriginType !== '') { myObjRows.sampleOriginType = stringSampleOriginType } - - console.log(stringSampleOriginDetail) if (stringSampleOriginDetail !== '') { myObjRows.sampleOriginDetail = stringSampleOriginDetail } - if (collectionDateJson !== '') { myObjRows.collectionDate = collectionDateJson } @@ -881,8 +881,7 @@ function TableResultsBiosamples (props) { } rows.push(myObjRows) - console.log(rows) - + if (index === resultsSelectedFinal.length - 1) { setEditable(rows.map(o => ({ ...o }))) @@ -893,9 +892,6 @@ function TableResultsBiosamples (props) { }, [trigger, resultsSelectedFinal]) useEffect(() => { - console.log(props.resultsPerDataset) - console.log(props.beaconsList) - console.log(arrayBeaconsIds) let count = 0 props.beaconsList.forEach((element2, index2) => { count = getOccurrence(arrayBeaconsIds, element2.meta.beaconId) @@ -917,8 +913,7 @@ function TableResultsBiosamples (props) { }) setShowDatasets(true) - console.log(props.resultsNotPerDataset) - console.log(props.resultsPerDataset) + }, []) return ( @@ -974,16 +969,26 @@ function TableResultsBiosamples (props) { triggerArray[[index, indexDataset]] === true && element[2][indexDataset] === false && - props.show === 'boolean' && ( + props.show === 'boolean' && + props.resultSets !== 'HIT' && (
NOT FOUND
)} {props.show === 'count' && + element[3][indexDataset] !== 0 && triggerArray[[index, indexDataset]] === true && (
{element[3][indexDataset]} RESULTS
)} + {props.show === 'count' && + element[3][indexDataset] === 0 && + triggerArray[[index, indexDataset]] === + true && ( +
+ {element[3][indexDataset]} RESULTS +
+ )} ) })} @@ -994,98 +999,114 @@ function TableResultsBiosamples (props) { ) })} - {props.resultsNotPerDataset.map(element => { - return ( - <> - {result[2] === true && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
+ {props.resultSets !== 'HIT' && + props.resultSets !== 'MISS' && + props.resultSets !== 'ALL' && + props.resultsNotPerDataset.map((element, index) => { + return ( + <> + {result[2] === true && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
-
- No datasets available -
FOUND
+
+ {props.resultSets === 'NONE' && ( + <> +
FOUND
+ + )} +
-
- )} - {result[2] === false && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
NOT FOUND
+ )} + {result[2] === false && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
+
+ {props.resultSets === 'NONE' && ( + <> +
+ NOT FOUND +
+ + )} +
-
- )} - - {props.show === 'count' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
- {result[1]} results -
-
- +
+ +
-
- )} - - ) - })} + )} + + ) + })} )} {props.show === 'full' && result[2] === true && ( diff --git a/frontend/src/components/Results/IndividualsResults/TableResultsIndividuals.js b/frontend/src/components/Results/IndividualsResults/TableResultsIndividuals.js index 58d3d2e..1c3921f 100644 --- a/frontend/src/components/Results/IndividualsResults/TableResultsIndividuals.js +++ b/frontend/src/components/Results/IndividualsResults/TableResultsIndividuals.js @@ -38,6 +38,7 @@ function TableResultsIndividuals (props) { const [resultsSelectedFinal, setResultsSelectedFinal] = useState([]) const [openDatasetArray, setOpenDataset] = useState([]) + const [openDatasetArray2, setOpenDataset2] = useState([]) const [editable, setEditable] = useState([]) @@ -45,6 +46,7 @@ function TableResultsIndividuals (props) { const [trigger2, setTrigger2] = useState(false) const [triggerArray, setTriggerArray] = useState([]) + const [triggerArray2, setTriggerArray2] = useState([]) const getSelectedRowsToExport = ({ apiRef }) => { const selectedRowIds = selectedGridRowsSelector(apiRef) @@ -56,13 +58,14 @@ function TableResultsIndividuals (props) { } const handleClickDatasets = e => { - console.log(e) - - - openDatasetArray[e] = true - console.log(openDatasetArray) + openDatasetArray[e] = true triggerArray[e] = true - console.log(triggerArray) + setTrigger(!trigger) + } + + const handleClickDatasets2 = e => { + openDatasetArray2[e] = true + triggerArray2[e] = true setTrigger(!trigger) } @@ -352,9 +355,6 @@ function TableResultsIndividuals (props) { }, [trigger, resultsSelectedFinal]) useEffect(() => { - console.log(props.resultsPerDataset) - console.log(props.beaconsList) - console.log(arrayBeaconsIds) let count = 0 props.beaconsList.forEach((element2, index2) => { count = getOccurrence(arrayBeaconsIds, element2.meta.beaconId) @@ -387,62 +387,84 @@ function TableResultsIndividuals (props) { <> {props.show !== 'full' && ( <> - {props.resultsPerDataset.map((element, index) => { - return ( - <> - {element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
- - {element[1].map((datasetObject, indexDataset) => { - return ( + {props.resultsPerDataset.map((element, index) => { + return ( + <> + {element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

{result[0].response.organization.name}

+
-
+ {element[1].map((datasetObject, indexDataset) => { + return ( +
- {openDatasetArray[[index,indexDataset]] === true && - triggerArray[[index,indexDataset]] === true && + {openDatasetArray[[index, indexDataset]] === + true && + triggerArray[[index, indexDataset]] === + true && element[2][indexDataset] === true && - props.show === 'boolean' &&
FOUND
} - {openDatasetArray[[index,indexDataset]] === true && - triggerArray[[index,indexDataset]] === true && - element[2][indexDataset] === false && props.show === 'boolean' && ( +
FOUND
+ )} + {openDatasetArray[[index, indexDataset]] === + true && + triggerArray[[index, indexDataset]] === + true && + element[2][indexDataset] === false && + props.show === 'boolean' && + props.resultSets !== 'HIT' && (
NOT FOUND
)} {props.show === 'count' && - triggerArray[[index,indexDataset]] === true && ( -
{element[3][indexDataset]} RESULTS
+ element[3][indexDataset] !== 0 && + triggerArray[[index, indexDataset]] === + true && ( +
+ {element[3][indexDataset]} RESULTS +
+ )} + {props.show === 'count' && + element[3][indexDataset] === 0 && + triggerArray[[index, indexDataset]] === + true && ( +
+ {element[3][indexDataset]} RESULTS +
)}
- ) - })} - - -
+ ) + })}
- )} - - ) - })} - - {props.resultsNotPerDataset.map(element => { +
+ )} + + ) + })} + + {props.resultSets !== 'HIT' && + props.resultSets !== 'MISS' && + props.resultSets !== 'ALL' && + props.resultsNotPerDataset.map((element, index) => { return ( <> {result[2] === true && @@ -464,8 +486,11 @@ function TableResultsIndividuals (props) {
- No datasets available -
FOUND
+ {props.resultSets === 'NONE' && ( + <> +
FOUND
+ + )}
@@ -488,8 +513,13 @@ function TableResultsIndividuals (props) {
- No datasets available -
NOT FOUND
+ {props.resultSets === 'NONE' && ( + <> +
+ NOT FOUND +
+ + )}
@@ -512,26 +542,34 @@ function TableResultsIndividuals (props) {
- No datasets available -
- {result[1]} results -
+ {props.resultSets === 'NONE' && ( + <> + {result[1] !== 0 && ( +
+ {result[1]} results +
+ )} + {result[1] === 0 && ( +
+ {result[1]} results +
+ )} + + )}
+ > )} ) })} - + )} {props.show === 'full' && result[2] === true && (
diff --git a/frontend/src/components/Results/RunsResults/TableResultsRuns.js b/frontend/src/components/Results/RunsResults/TableResultsRuns.js index a68d9e2..584e5cf 100644 --- a/frontend/src/components/Results/RunsResults/TableResultsRuns.js +++ b/frontend/src/components/Results/RunsResults/TableResultsRuns.js @@ -38,6 +38,7 @@ function TableResultsRuns (props) { const [resultsSelectedFinal, setResultsSelectedFinal] = useState([]) const [openDatasetArray, setOpenDataset] = useState([]) + const [openDatasetArray2, setOpenDataset2] = useState([]) const [editable, setEditable] = useState([]) @@ -45,6 +46,7 @@ function TableResultsRuns (props) { const [trigger2, setTrigger2] = useState(false) const [triggerArray, setTriggerArray] = useState([]) + const [triggerArray2, setTriggerArray2] = useState([]) const getSelectedRowsToExport = ({ apiRef }) => { const selectedRowIds = selectedGridRowsSelector(apiRef) @@ -56,12 +58,14 @@ function TableResultsRuns (props) { } const handleClickDatasets = e => { - console.log(e) - openDatasetArray[e] = true - console.log(openDatasetArray) triggerArray[e] = true - console.log(triggerArray) + setTrigger(!trigger) + } + + const handleClickDatasets2 = e => { + openDatasetArray2[e] = true + triggerArray2[e] = true setTrigger(!trigger) } @@ -169,8 +173,6 @@ function TableResultsRuns (props) { }) resultsSelectedFinal.forEach((element, index) => { if (element[1] !== undefined) { - console.log(element[0]) - let runDateJson = [] if (element[1].runDate !== '' && element[1].runDate !== undefined) { if (typeof element[1].runDate === 'string') { @@ -273,11 +275,10 @@ function TableResultsRuns (props) { myObjRows.platform = platformJson } if (stringPlatformModel !== '') { - myObjRows.platformModel= stringPlatformModel + myObjRows.platformModel = stringPlatformModel } rows.push(myObjRows) - console.log(rows) if (index === resultsSelectedFinal.length - 1) { setEditable(rows.map(o => ({ ...o }))) @@ -289,9 +290,6 @@ function TableResultsRuns (props) { }, [trigger, resultsSelectedFinal]) useEffect(() => { - console.log(props.resultsPerDataset) - console.log(props.beaconsList) - console.log(arrayBeaconsIds) let count = 0 props.beaconsList.forEach((element2, index2) => { count = getOccurrence(arrayBeaconsIds, element2.meta.beaconId) @@ -313,8 +311,6 @@ function TableResultsRuns (props) { }) setShowDatasets(true) - console.log(props.resultsNotPerDataset) - console.log(props.resultsPerDataset) }, []) return ( @@ -370,16 +366,26 @@ function TableResultsRuns (props) { triggerArray[[index, indexDataset]] === true && element[2][indexDataset] === false && - props.show === 'boolean' && ( + props.show === 'boolean' && + props.resultSets !== 'HIT' && (
NOT FOUND
)} {props.show === 'count' && + element[3][indexDataset] !== 0 && triggerArray[[index, indexDataset]] === true && (
{element[3][indexDataset]} RESULTS
)} + {props.show === 'count' && + element[3][indexDataset] === 0 && + triggerArray[[index, indexDataset]] === + true && ( +
+ {element[3][indexDataset]} RESULTS +
+ )}
) })} @@ -390,98 +396,114 @@ function TableResultsRuns (props) { ) })} - {props.resultsNotPerDataset.map(element => { - return ( - <> - {result[2] === true && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
+ {props.resultSets !== 'HIT' && + props.resultSets !== 'MISS' && + props.resultSets !== 'ALL' && + props.resultsNotPerDataset.map((element, index) => { + return ( + <> + {result[2] === true && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
-
- No datasets available -
FOUND
+
+ {props.resultSets === 'NONE' && ( + <> +
FOUND
+ + )} +
-
- )} - {result[2] === false && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
NOT FOUND
+ )} + {result[2] === false && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
+
+ {props.resultSets === 'NONE' && ( + <> +
+ NOT FOUND +
+ + )} +
-
- )} - - {props.show === 'count' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
- {result[1]} results -
-
- +
+ +
-
- )} - - ) - })} + )} + + ) + })} )} {props.show === 'full' && result[2] === true && ( diff --git a/frontend/src/components/Results/VariantResults/TableResultsVariant.js b/frontend/src/components/Results/VariantResults/TableResultsVariant.js index 7f8f251..b75d3f1 100644 --- a/frontend/src/components/Results/VariantResults/TableResultsVariant.js +++ b/frontend/src/components/Results/VariantResults/TableResultsVariant.js @@ -26,6 +26,7 @@ function TableResultsVariant (props) { const [resultsSelectedFinal, setResultsSelectedFinal] = useState([]) const [openDatasetArray, setOpenDataset] = useState([]) + const [openDatasetArray2, setOpenDataset2] = useState([]) const [editable, setEditable] = useState([]) @@ -33,6 +34,7 @@ function TableResultsVariant (props) { const [trigger2, setTrigger2] = useState(false) const [triggerArray, setTriggerArray] = useState([]) + const [triggerArray2, setTriggerArray2] = useState([]) const copyData = e => { navigator.clipboard @@ -43,16 +45,17 @@ function TableResultsVariant (props) { .catch(() => { alert('something went wrong') }) - console.log('COPY DONE') } const handleClickDatasets = e => { - console.log(e) - openDatasetArray[e] = true - console.log(openDatasetArray) triggerArray[e] = true - console.log(triggerArray) + setTrigger(!trigger) + } + + const handleClickDatasets2 = e => { + openDatasetArray2[e] = true + triggerArray2[e] = true setTrigger(!trigger) } @@ -86,9 +89,6 @@ function TableResultsVariant (props) { }, [trigger, resultsSelectedFinal]) useEffect(() => { - console.log(props.resultsPerDataset) - console.log(props.beaconsList) - console.log(arrayBeaconsIds) let count = 0 props.beaconsList.forEach((element2, index2) => { count = getOccurrence(arrayBeaconsIds, element2.meta.beaconId) @@ -175,10 +175,12 @@ function TableResultsVariant (props) { [index, indexDataset] ] === true && element[2][indexDataset] === false && - props.show === 'boolean' && ( + props.show === 'boolean' && + props.resultSets !== 'HIT' && (
NOT FOUND
)} {props.show === 'count' && + element[3][indexDataset] !== 0 && triggerArray[ [index, indexDataset] ] === true && ( @@ -186,6 +188,15 @@ function TableResultsVariant (props) { {element[3][indexDataset]} RESULTS )} + {props.show === 'count' && + element[3][indexDataset] === 0 && + triggerArray[ + [index, indexDataset] + ] === true && ( +
+ {element[3][indexDataset]} RESULTS +
+ )}
) } @@ -197,93 +208,119 @@ function TableResultsVariant (props) { ) })} - {props.resultsNotPerDataset.map(element => { - return ( - <> - {result[2] === true && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
+ {props.resultSets !== 'HIT' && + props.resultSets !== 'MISS' && + props.resultSets !== 'ALL' && + props.resultsNotPerDataset.map((element, index) => { + return ( + <> + {result[2] === true && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
-
- No datasets available -
FOUND
+
+ {props.resultSets === 'NONE' && ( + <> +
FOUND
+ + )} +
-
- )} - {result[2] === false && - props.show === 'boolean' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
NOT FOUND
+ )} + {result[2] === false && + props.show === 'boolean' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
+
+ {props.resultSets === 'NONE' && ( + <> +
+ NOT FOUND +
+ + )} +
-
- )} + )} - {props.show === 'count' && - element[0] === result[0].meta.beaconId && ( -
-
-
- {result[0].meta.beaconId} -

- {result[0].response.organization.name} -

-
-
- No datasets available -
- {result[1]} results -
+ {props.show === 'count' && + element[0] === result[0].meta.beaconId && ( +
+
+
+ {result[0].meta.beaconId} +

+ {result[0].response.organization.name} +

+
+
+ {props.resultSets === 'NONE' && ( + <> + {result[1] !== 0 && ( +
+ {result[1]} results +
+ )} + {result[1] === 0 && ( +
+ {result[1]} results +
+ )} + + )} +
+
-
-
- )} - - ) - })} + )} + + ) + })} )} {props.show === 'full' && result[2] === true && ( diff --git a/frontend/src/components/Runs/RunsResults.js b/frontend/src/components/Runs/RunsResults.js index ef33f15..f3c9821 100644 --- a/frontend/src/components/Runs/RunsResults.js +++ b/frontend/src/components/Runs/RunsResults.js @@ -178,33 +178,26 @@ function RunsResults (props) { } if (token === null) { - res = await axios.post( - configData.API_URL + '/runs', - jsonData1 - ) + res = await axios.post(configData.API_URL + '/runs', jsonData1) } else { const headers = { Authorization: `Bearer ${token}` } - res = await axios.post( - configData.API_URL + '/runs', - jsonData1, - { headers: headers } - ) + res = await axios.post(configData.API_URL + '/runs', jsonData1, { + headers: headers + }) } setTimeOut(true) - if ( res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { if (element.id && element.id !== '') { if (resultsPerDataset.length > 0) { - console.log(resultsPerDataset) resultsPerDataset.forEach(element2 => { if (element2[0] === element.beaconId) { element2[1].push(element.id) @@ -217,7 +210,15 @@ function RunsResults (props) { [element.exists], [element.resultsCount] ] - resultsPerDataset.push(arrayResultsPerDataset) + let found = false + resultsPerDataset.forEach(element => { + if (element[0] === arrayResultsPerDataset[0]) { + found = true + } + }) + if (found === false) { + resultsPerDataset.push(arrayResultsPerDataset) + } } }) } else { @@ -275,19 +276,14 @@ function RunsResults (props) { if (token === null) { console.log('Querying without token') - res = await axios.post( - configData.API_URL + '/runs', - jsonData2 - ) + res = await axios.post(configData.API_URL + '/runs', jsonData2) } else { console.log('Querying WITH token') const headers = { Authorization: `Bearer ${token}` } - res = await axios.post( - configData.API_URL + '/runs', - jsonData2, - { headers: headers } - ) + res = await axios.post(configData.API_URL + '/runs', jsonData2, { + headers: headers + }) } setTimeOut(true) @@ -295,25 +291,19 @@ function RunsResults (props) { res.data.responseSummary.numTotalResults < 1 || res.data.responseSummary.numTotalResults === undefined ) { - setError('ERROR. Please check the query and retry') + setError('No results. Please try another query') setNumberResults(0) setBoolean(false) } else { res.data.response.resultSets.forEach((element, index) => { - console.log(res.data.response) if (element.id && element.id !== '') { - console.log(resultsPerDataset) if (resultsPerDataset.length > 0) { resultsPerDataset.forEach(element2 => { - console.log(element2[0]) - console.log(element.beaconId) if (element2[0] === element.beaconId) { element2[1].push(element.id) element2[2].push(element.exists) element2[3].push(element.resultsCount) } else { - console.log('hola') - let arrayResultsPerDataset = [ element.beaconId, [element.id], @@ -321,13 +311,10 @@ function RunsResults (props) { [element.resultsCount] ] let found = false - - console.log(arrayResultsPerDataset) resultsPerDataset.forEach(element => { if (element[0] === arrayResultsPerDataset[0]) { found = true } - console.log(found) }) if (found === false) { resultsPerDataset.push(arrayResultsPerDataset) @@ -341,7 +328,6 @@ function RunsResults (props) { [element.exists], [element.resultsCount] ] - console.log(arrayResultsPerDataset) resultsPerDataset.push(arrayResultsPerDataset) } } @@ -366,9 +352,10 @@ function RunsResults (props) { } } } catch (error) { - setError('No results. Please check the query and the connection and retry') + setError( + 'No results. Please check the query and the connection and retry' + ) setTimeOut(true) - console.log(error) } } apiCall() @@ -439,10 +426,10 @@ function RunsResults (props) { results={results} resultsPerDataset={resultsPerDataset} beaconsList={beaconsList} + resultSets={props.resultSets} >
)} - {show3 && error &&

  {error}

} {show2 && !error && (
@@ -452,6 +439,7 @@ function RunsResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} >
)} @@ -463,6 +451,7 @@ function RunsResults (props) { resultsNotPerDataset={resultsNotPerDataset} results={results} beaconsList={beaconsList} + resultSets={props.resultSets} >
)} diff --git a/frontend/src/components/SignIn/LoggedIn.js b/frontend/src/components/SignIn/LoggedIn.js index 00d1261..a5e248a 100644 --- a/frontend/src/components/SignIn/LoggedIn.js +++ b/frontend/src/components/SignIn/LoggedIn.js @@ -1,31 +1,27 @@ -import React from 'react'; -import { useAuth } from 'oidc-react'; -import { useContext } from 'react'; +import React from 'react' +import { useAuth } from 'oidc-react' +import { useContext } from 'react' import { AuthContext } from '../context/AuthContext' - const LoggedIn = () => { - const auth = useAuth(); - const { - isLoggedIn, - setIsLoggedIn, - logOutUser, - setUserNameToShare - } = useContext(AuthContext) - + const auth = useAuth() + const { isLoggedIn, setIsLoggedIn, logOutUser, setUserNameToShare } = + useContext(AuthContext) + if (auth && auth.userData) { - console.log(auth) - console.log(auth.userData) setIsLoggedIn(true) setUserNameToShare(auth.userData.profile.name) - + return (
- Logged in! 🎉
+ Logged in! 🎉 +
- ); + ) } - return
Not logged in! Try to refresh to be redirected to LifeScience.
; -}; + return ( +
Not logged in! Try to refresh to be redirected to LifeScience.
+ ) +} -export default LoggedIn; \ No newline at end of file +export default LoggedIn diff --git a/frontend/src/components/SignIn/SignInForm.css b/frontend/src/components/SignIn/SignInForm.css index 76c0b99..13644f1 100644 --- a/frontend/src/components/SignIn/SignInForm.css +++ b/frontend/src/components/SignIn/SignInForm.css @@ -403,7 +403,7 @@ body { } } -@media (max-width: 800px) { +@media (max-width: 760px) { .formFields { margin: 0px; margin-top: 37px; diff --git a/frontend/src/components/Validator/Validator.js b/frontend/src/components/Validator/Validator.js index adc4196..9f20d43 100644 --- a/frontend/src/components/Validator/Validator.js +++ b/frontend/src/components/Validator/Validator.js @@ -25,11 +25,11 @@ function Validator () { .catch(() => { alert('something went wrong') }) - console.log('COPY DONE') } const submitVerifierUrl = async e => { setTimeout(false) + setErrorsFound('') e.preventDefault() try { if (verifierUrl !== '') { @@ -66,7 +66,6 @@ function Validator () { setTimeout(true) } } catch (error) { - console.log(error) setErrror('An error occured. Please check the URL and retry.') } } diff --git a/frontend/src/config.json b/frontend/src/config.json index ea6473e..d994725 100644 --- a/frontend/src/config.json +++ b/frontend/src/config.json @@ -1,5 +1,5 @@ { - "API_URL": "https://beacon-network-backend-demo.ega-archive.org/beacon-network/v2.0.0", + "API_URL": "https://beacon-network-backend-test.ega-archive.org/beacon-network/v2.0.0", "REDIRECT_URL": "http://localhost:3000/", "KEYCLOAK_URL": "https://beacon-network-demo2.ega-archive.org" } \ No newline at end of file diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 482bc39..258aaee 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -4606,6 +4606,15 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + dom-serializer@0: version "0.2.2" resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz" @@ -4614,16 +4623,16 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -domelementtype@^2.0.1, domelementtype@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domelementtype@1: +domelementtype@^1.3.1, domelementtype@1: version "1.3.1" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + domexception@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" @@ -4631,6 +4640,13 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" @@ -4638,11 +4654,26 @@ domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: dependencies: domelementtype "^2.2.0" +domhandler@^5.0.2, domhandler@^5.0.3, domhandler@5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + domino@^2.1.6: version "2.1.6" resolved "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz" integrity sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ== +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + domutils@^1.7.0: version "1.7.0" resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz" @@ -4660,6 +4691,15 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" @@ -4766,11 +4806,21 @@ enhanced-resolve@^5.10.0: graceful-fs "^4.2.4" tapable "^2.2.0" +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + entities@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^4.2.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" @@ -6000,6 +6050,14 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +html-dom-parser@5.0.7: + version "5.0.7" + resolved "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-5.0.7.tgz" + integrity sha512-2YD2/yB0QgrlkBIn0CsGaRXC89E1gtuPVpiOGC52NTzPCC83n0WMdGD+5q7lpcKqbCpnWValQbovuy/NI/0kag== + dependencies: + domhandler "5.0.3" + htmlparser2 "9.1.0" + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" @@ -6030,6 +6088,16 @@ html-minifier-terser@^6.0.2: relateurl "^0.2.7" terser "^5.10.0" +html-react-parser@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/html-react-parser/-/html-react-parser-5.1.1.tgz" + integrity sha512-L5VK0rKN3VM7uzRH+4wxAL9elvHuCNDjyWKKjcCDR+YWW5Qr7WWSK7+e627DcePVAFi5IMqc+rAU8j/1DpC/Tw== + dependencies: + domhandler "5.0.3" + html-dom-parser "5.0.7" + react-property "2.0.2" + style-to-js "1.1.10" + html-webpack-plugin@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz" @@ -6041,6 +6109,18 @@ html-webpack-plugin@^5.5.0: pretty-error "^4.0.0" tapable "^2.0.0" +htmlparser2@^3.9.0: + version "3.10.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" @@ -6051,6 +6131,16 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" +htmlparser2@9.1.0: + version "9.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz" + integrity sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.1.0" + entities "^4.5.0" + http-cache-semantics@^4.1.0: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" @@ -6295,6 +6385,11 @@ ini@^1.3.5: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +inline-style-parser@0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz" + integrity sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ== + insert-css@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz" @@ -9222,6 +9317,13 @@ react-app-polyfill@^3.0.0: regenerator-runtime "^0.13.9" whatwg-fetch "^3.6.2" +react-app-rewired@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz" + integrity sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA== + dependencies: + semver "^5.6.0" + react-bootstrap@2.6.0: version "2.6.0" resolved "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.6.0.tgz" @@ -9314,6 +9416,13 @@ react-highlight-words@^0.17.0: memoize-one "^4.0.0" prop-types "^15.5.8" +react-html-parser@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/react-html-parser/-/react-html-parser-2.0.2.tgz" + integrity sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g== + dependencies: + htmlparser2 "^3.9.0" + react-input-autosize@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz" @@ -9394,6 +9503,11 @@ react-path-tooltip@^1.0.25: resolved "https://registry.npmjs.org/react-path-tooltip/-/react-path-tooltip-1.0.25.tgz" integrity sha512-wT1+mDi10aFyP3nyRCz3ixcwWGPIeCb3QOPHFYC+kIzaQUPk82Lrm3TsDn2k24n8FdUbbsxpfL8iwIddzaG5LQ== +react-property@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/react-property/-/react-property-2.0.2.tgz" + integrity sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug== + react-refresh@^0.11.0: version "0.11.0" resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" @@ -9593,7 +9707,7 @@ readable-stream@^2.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.6.0: +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -10643,6 +10757,20 @@ style-loader@^3.3.1: resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz" integrity sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ== +style-to-js@1.1.10: + version "1.1.10" + resolved "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.10.tgz" + integrity sha512-VC7MBJa+y0RZhpnLKDPmVRLRswsASLmixkiZ5R8xZpNT9VyjeRzwnXd2pBzAWdgSGv/pCNNH01gPCCUsB9exYg== + dependencies: + style-to-object "1.0.5" + +style-to-object@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz" + integrity sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ== + dependencies: + inline-style-parser "0.2.2" + stylehacks@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz"