mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-08 23:58:12 +08:00
disable formatting rules for eslint and add prettier in lint-staged (#2355)
* disable formatting rules for eslint and add prettier in lint-staged * update npm modules * set plugin-proposal-private-methods to loose * update snapshots due to popover package update * add missing quotes Co-authored-by: bkmartinjr <bruce@chanzuckerberg.com>
This commit is contained in:
co-authored by
bkmartinjr
parent
97fb98b4eb
commit
5ab96ed360
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
exports[`did launch page launched 1`] = `"<span style=\\"max-width: 155px; display: flex; overflow: hidden; justify-content: flex-start; width: 100%; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">pbm</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">c3k</span><span style=\\"position: absolute; right: 0px; color: inherit;\\">c3k</span></span></span>"`;
|
exports[`did launch page launched 1`] = `"<span style=\\"max-width: 155px; display: flex; overflow: hidden; justify-content: flex-start; width: 100%; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">pbm</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">c3k</span><span style=\\"position: absolute; right: 0px; color: inherit;\\">c3k</span></span></span>"`;
|
||||||
|
|
||||||
exports[`metadata loads categories and values from dataset appear 1`] = `"<div style=\\"display: flex; justify-content: space-between; align-items: baseline;\\"><div style=\\"display: flex; justify-content: flex-start; align-items: flex-start;\\"><label class=\\"bp3-control bp3-checkbox\\" for=\\"category-select-louvain\\"><input id=\\"category-select-louvain\\" data-testclass=\\"category-select\\" data-testid=\\"louvain:category-select\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span role=\\"menuitem\\" tabindex=\\"0\\" data-testclass=\\"category-expand\\" data-testid=\\"louvain:category-expand\\" style=\\"cursor: pointer;\\"><span class=\\"bp3-popover2-target\\"><span data-testid=\\"louvain:category-label\\" tabindex=\\"-1\\" aria-label=\\"louvain\\" class=\\"\\" style=\\"max-width: 265px;\\"><span style=\\"max-width: 265px; display: flex; overflow: hidden; justify-content: flex-start; width: 100%; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">lou</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">vain</span><span style=\\"position: absolute; right: 0px; color: inherit;\\">vain</span></span></span></span></span><svg stroke=\\"currentColor\\" fill=\\"currentColor\\" stroke-width=\\"0\\" viewBox=\\"0 0 320 512\\" data-testclass=\\"category-expand-is-not-expanded\\" height=\\"1em\\" width=\\"1em\\" xmlns=\\"http://www.w3.org/2000/svg\\" style=\\"font-size: 10px; margin-left: 5px;\\"><path d=\\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\\"></path></svg></span></div><div><span class=\\"bp3-popover-wrapper\\"><span class=\\"bp3-popover-target\\"><a role=\\"button\\" data-testclass=\\"colorby\\" data-testid=\\"colorby-louvain\\" class=\\"bp3-button\\" tabindex=\\"0\\"><span icon=\\"tint\\" class=\\"bp3-icon bp3-icon-tint\\"><svg data-icon=\\"tint\\" width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 16 16\\"><desc>tint</desc><path d=\\"M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z\\" fill-rule=\\"evenodd\\"></path></svg></span></a></span></span></div></div><div style=\\"margin-left: 26px;\\"></div>"`;
|
exports[`metadata loads categories and values from dataset appear 1`] = `"<div style=\\"display: flex; justify-content: space-between; align-items: baseline;\\"><div style=\\"display: flex; justify-content: flex-start; align-items: flex-start;\\"><label class=\\"bp3-control bp3-checkbox\\" for=\\"category-select-louvain\\"><input id=\\"category-select-louvain\\" data-testclass=\\"category-select\\" data-testid=\\"louvain:category-select\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span role=\\"menuitem\\" tabindex=\\"0\\" data-testclass=\\"category-expand\\" data-testid=\\"louvain:category-expand\\" style=\\"cursor: pointer;\\"><span class=\\"bp3-popover2-target\\"><span data-testid=\\"louvain:category-label\\" tabindex=\\"-1\\" aria-label=\\"louvain\\" class=\\"\\" style=\\"max-width: 265px;\\"><span style=\\"max-width: 265px; display: flex; overflow: hidden; justify-content: flex-start; width: 100%; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">lou</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">vain</span><span style=\\"position: absolute; right: 0px; color: inherit;\\">vain</span></span></span></span></span><svg stroke=\\"currentColor\\" fill=\\"currentColor\\" stroke-width=\\"0\\" viewBox=\\"0 0 320 512\\" data-testclass=\\"category-expand-is-not-expanded\\" height=\\"1em\\" width=\\"1em\\" xmlns=\\"http://www.w3.org/2000/svg\\" style=\\"font-size: 10px; margin-left: 5px;\\"><path d=\\"M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z\\"></path></svg></span></div><div><span class=\\"bp3-popover-wrapper\\"><span aria-haspopup=\\"true\\" class=\\"bp3-popover-target\\"><a role=\\"button\\" data-testclass=\\"colorby\\" data-testid=\\"colorby-louvain\\" class=\\"bp3-button\\" tabindex=\\"0\\"><span icon=\\"tint\\" class=\\"bp3-icon bp3-icon-tint\\"><svg data-icon=\\"tint\\" width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 16 16\\"><desc>tint</desc><path d=\\"M7.88 1s-4.9 6.28-4.9 8.9c.01 2.82 2.34 5.1 4.99 5.1 2.65-.01 5.03-2.3 5.03-5.13C12.99 7.17 7.88 1 7.88 1z\\" fill-rule=\\"evenodd\\"></path></svg></span></a></span></span></div></div><div style=\\"margin-left: 26px;\\"></div>"`;
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
exports[`annotations stacked bar graph renders 1`] = `
|
exports[`annotations stacked bar graph renders 1`] = `
|
||||||
Array [
|
Array [
|
||||||
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-TEST-LABEL\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"TEST-LABEL\\" class=\\"\\" style=\\"width: 63px; color: black; font-style: normal; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: black; font-style: normal; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">TEST-</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">LABEL</span><span style=\\"position: absolute; right: 0px; color: black;\\">LABEL</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-TEST-LABEL\\" style=\\"color: black;\\">0</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:TEST-LABEL:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-TEST-LABEL\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"TEST-LABEL\\" class=\\"\\" style=\\"width: 63px; color: black; font-style: normal; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: black; font-style: normal; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">TEST-</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">LABEL</span><span style=\\"position: absolute; right: 0px; color: black;\\">LABEL</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-TEST-LABEL\\" style=\\"color: black;\\">0</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span aria-haspopup=\\"true\\" class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:TEST-LABEL:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
||||||
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-unassigned\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"unassigned\\" class=\\"\\" style=\\"width: 63px; color: rgb(171, 171, 171); font-style: italic; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: rgb(171, 171, 171); font-style: italic; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">unass</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">igned</span><span style=\\"position: absolute; right: 0px; color: rgb(171, 171, 171);\\">igned</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"><canvas width=\\"100\\" height=\\"11\\" style=\\"margin-right: 5px; width: 100px; height: 11px;\\"></canvas></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-unassigned\\" style=\\"color: rgb(171, 171, 171); font-style: italic;\\">2133</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:unassigned:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-unassigned\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"unassigned\\" class=\\"\\" style=\\"width: 63px; color: rgb(171, 171, 171); font-style: italic; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: rgb(171, 171, 171); font-style: italic; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">unass</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">igned</span><span style=\\"position: absolute; right: 0px; color: rgb(171, 171, 171);\\">igned</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"><canvas width=\\"100\\" height=\\"11\\" style=\\"margin-right: 5px; width: 100px; height: 11px;\\"></canvas></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-unassigned\\" style=\\"color: rgb(171, 171, 171); font-style: italic;\\">2133</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span aria-haspopup=\\"true\\" class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:unassigned:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
||||||
]
|
]
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`annotations stacked bar graph renders 2`] = `
|
exports[`annotations stacked bar graph renders 2`] = `
|
||||||
Array [
|
Array [
|
||||||
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-TEST-LABEL\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"TEST-LABEL\\" class=\\"\\" style=\\"width: 63px; color: black; font-style: normal; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: black; font-style: normal; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">TEST-</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">LABEL</span><span style=\\"position: absolute; right: 0px; color: black;\\">LABEL</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-TEST-LABEL\\" style=\\"color: black;\\">0</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:TEST-LABEL:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-TEST-LABEL\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-TEST-LABEL\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"TEST-LABEL\\" class=\\"\\" style=\\"width: 63px; color: black; font-style: normal; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: black; font-style: normal; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">TEST-</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">LABEL</span><span style=\\"position: absolute; right: 0px; color: black;\\">LABEL</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-TEST-LABEL\\" style=\\"color: black;\\">0</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span aria-haspopup=\\"true\\" class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:TEST-LABEL:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
||||||
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-unassigned\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"unassigned\\" class=\\"\\" style=\\"width: 63px; color: rgb(171, 171, 171); font-style: italic; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: rgb(171, 171, 171); font-style: italic; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">unass</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">igned</span><span style=\\"position: absolute; right: 0px; color: rgb(171, 171, 171);\\">igned</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"><canvas width=\\"100\\" height=\\"11\\" style=\\"margin-right: 5px; width: 100px; height: 11px;\\"></canvas></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-unassigned\\" style=\\"color: rgb(171, 171, 171); font-style: italic;\\">2638</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:unassigned:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
"<div class=\\"categorical__value___2m6V7\\" data-testclass=\\"categorical-row\\" style=\\"padding: 4px 0px 4px 7px; display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 2px; border-radius: 2px;\\"><div style=\\"margin: 0px; padding: 0px; user-select: none; width: 220px; display: flex; justify-content: space-between;\\"><div style=\\"display: flex; align-items: baseline;\\"><label for=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" class=\\"bp3-control bp3-checkbox\\" style=\\"margin: 0px;\\"><input id=\\"value-toggle-checkbox-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value-select\\" data-testid=\\"categorical-value-select-TEST-CATEGORY-unassigned\\" type=\\"checkbox\\" checked=\\"\\"><span class=\\"bp3-control-indicator\\"></span></label><span class=\\"bp3-popover2-target\\"><span data-testid=\\"categorical-value-TEST-CATEGORY-unassigned\\" data-testclass=\\"categorical-value\\" tabindex=\\"-1\\" aria-label=\\"unassigned\\" class=\\"\\" style=\\"width: 63px; color: rgb(171, 171, 171); font-style: italic; display: inline-block; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px;\\"><span style=\\"width: 100%; color: rgb(171, 171, 171); font-style: italic; display: flex; overflow: hidden; line-height: 1.1em; height: 1.1em; vertical-align: middle; margin-right: 16px; justify-content: flex-start; padding: 0px;\\"><span style=\\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex-shrink: 1; min-width: 5px;\\">unass</span><span style=\\"position: relative; overflow: hidden; white-space: nowrap;\\"><span style=\\"color: transparent;\\">igned</span><span style=\\"position: absolute; right: 0px; color: rgb(171, 171, 171);\\">igned</span></span></span></span></span></div><span style=\\"flex-shrink: 0;\\"><canvas width=\\"100\\" height=\\"11\\" style=\\"margin-right: 5px; width: 100px; height: 11px;\\"></canvas></span></div><div><span><span data-testclass=\\"categorical-value-count\\" data-testid=\\"categorical-value-count-TEST-CATEGORY-unassigned\\" style=\\"color: rgb(171, 171, 171); font-style: italic;\\">2638</span><svg display=\\"none\\" style=\\"margin-left: 5px; width: 15px; height: 15px; background-color: inherit;\\"></svg><span><span class=\\"bp3-popover-wrapper\\"><span aria-haspopup=\\"true\\" class=\\"bp3-popover-target\\"><button type=\\"button\\" data-testclass=\\"seeActions\\" data-testid=\\"TEST-CATEGORY:unassigned:see-actions\\" class=\\"bp3-button bp3-minimal bp3-small\\" tabindex=\\"0\\" style=\\"margin-left: 2px; position: relative; top: -1px; min-height: 16px;\\"><span icon=\\"more\\" class=\\"bp3-icon bp3-icon-more\\"><svg data-icon=\\"more\\" width=\\"10\\" height=\\"10\\" viewBox=\\"0 0 16 16\\"><desc>more</desc><path d=\\"M2 6.03a2 2 0 100 4 2 2 0 100-4zM14 6.03a2 2 0 100 4 2 2 0 100-4zM8 6.03a2 2 0 100 4 2 2 0 100-4z\\" fill-rule=\\"evenodd\\"></path></svg></span></button></span></span></span></span></div></div>",
|
||||||
]
|
]
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
|||||||
@@ -71,11 +71,9 @@ export async function getAllHistograms(testclass: any, testIds: any) {
|
|||||||
const allHistograms = await getAllByClass(testclass);
|
const allHistograms = await getAllByClass(testclass);
|
||||||
|
|
||||||
const testIDs = await Promise.all(
|
const testIDs = await Promise.all(
|
||||||
allHistograms.map((hist) => {
|
allHistograms.map((hist) =>
|
||||||
return page.evaluate((elem) => {
|
page.evaluate((elem) => elem.dataset.testid, hist)
|
||||||
return elem.dataset.testid;
|
)
|
||||||
}, hist);
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return testIDs.map((id) => id.replace(/^histogram-/, ""));
|
return testIDs.map((id) => id.replace(/^histogram-/, ""));
|
||||||
@@ -214,11 +212,9 @@ export async function createCategory(categoryName: any) {
|
|||||||
await clickOn("submit-category");
|
await clickOn("submit-category");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
|
* GENESET
|
||||||
GENESET
|
*/
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
export async function colorByGeneset(genesetName: any) {
|
export async function colorByGeneset(genesetName: any) {
|
||||||
@@ -235,9 +231,9 @@ export async function assertColorLegendLabel(label: any) {
|
|||||||
const handle = await waitByID("continuous_legend_color_by_label");
|
const handle = await waitByID("continuous_legend_color_by_label");
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
||||||
const result = await handle.evaluate((node) => {
|
const result = await handle.evaluate((node) =>
|
||||||
return node.getAttribute("aria-label");
|
node.getAttribute("aria-label")
|
||||||
});
|
);
|
||||||
|
|
||||||
return expect(result).toBe(label);
|
return expect(result).toBe(label);
|
||||||
}
|
}
|
||||||
@@ -303,18 +299,16 @@ export async function assertGenesetExists(genesetName: any) {
|
|||||||
const handle = await waitByID(`${genesetName}:geneset-name`);
|
const handle = await waitByID(`${genesetName}:geneset-name`);
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
||||||
const result = await handle.evaluate((node) => {
|
const result = await handle.evaluate((node) =>
|
||||||
return node.getAttribute("aria-label");
|
node.getAttribute("aria-label")
|
||||||
});
|
);
|
||||||
|
|
||||||
return expect(result).toBe(genesetName);
|
return expect(result).toBe(genesetName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
|
* GENE
|
||||||
GENE
|
*/
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
export async function addGeneToSet(genesetName: any, geneToAddToSet: any) {
|
export async function addGeneToSet(genesetName: any, geneToAddToSet: any) {
|
||||||
@@ -339,9 +333,9 @@ export async function assertGeneExistsInGeneset(geneSymbol: any) {
|
|||||||
const handle = await waitByID(`${geneSymbol}:gene-label`);
|
const handle = await waitByID(`${geneSymbol}:gene-label`);
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
// @ts-expect-error ts-migrate(2531) FIXME: Object is possibly 'null'.
|
||||||
const result = await handle.evaluate((node) => {
|
const result = await handle.evaluate((node) =>
|
||||||
return node.getAttribute("aria-label");
|
node.getAttribute("aria-label")
|
||||||
});
|
);
|
||||||
|
|
||||||
return expect(result).toBe(geneSymbol);
|
return expect(result).toBe(geneSymbol);
|
||||||
}
|
}
|
||||||
@@ -359,11 +353,9 @@ export async function expandGene(geneSymbol: any) {
|
|||||||
await clickOn(`maximize-${geneSymbol}`);
|
await clickOn(`maximize-${geneSymbol}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/**
|
||||||
|
* CATEGORY
|
||||||
CATEGORY
|
*/
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
export async function duplicateCategory(categoryName: any) {
|
export async function duplicateCategory(categoryName: any) {
|
||||||
|
|||||||
@@ -504,11 +504,9 @@ describe.each([
|
|||||||
const labels = await getAllByClass("categorical-row");
|
const labels = await getAllByClass("categorical-row");
|
||||||
|
|
||||||
const result = await Promise.all(
|
const result = await Promise.all(
|
||||||
labels.map((label) => {
|
labels.map((label) =>
|
||||||
return page.evaluate((element) => {
|
page.evaluate((element) => element.outerHTML, label)
|
||||||
return element.outerHTML;
|
)
|
||||||
}, label);
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(result).toMatchSnapshot();
|
expect(result).toMatchSnapshot();
|
||||||
|
|||||||
@@ -25,9 +25,7 @@ describe("undo", () => {
|
|||||||
test("expected state modifications", () => {
|
test("expected state modifications", () => {
|
||||||
const initialState = { a: 0, b: 1000 };
|
const initialState = { a: 0, b: 1000 };
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const reducer = (state: any) => {
|
const reducer = (state: any) => ({ a: state.a + 1, b: state.b + 1 });
|
||||||
return { a: state.a + 1, b: state.b + 1 };
|
|
||||||
};
|
|
||||||
const undoableReducer = undoable(reducer, ["a"]);
|
const undoableReducer = undoable(reducer, ["a"]);
|
||||||
|
|
||||||
const s1 = undoableReducer(initialState, { type: "test" });
|
const s1 = undoableReducer(initialState, { type: "test" });
|
||||||
@@ -46,9 +44,7 @@ describe("undo", () => {
|
|||||||
describe("redo", () => {
|
describe("redo", () => {
|
||||||
const initialState = { a: 0, b: 1000 };
|
const initialState = { a: 0, b: 1000 };
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const reducer = (state: any) => {
|
const reducer = (state: any) => ({ a: state.a + 1, b: state.b + 1 });
|
||||||
return { a: state.a + 1, b: state.b + 1 };
|
|
||||||
};
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
let UR: any;
|
let UR: any;
|
||||||
|
|
||||||
|
|||||||
@@ -828,9 +828,7 @@ describe("dataframe factories", () => {
|
|||||||
[3, 3],
|
[3, 3],
|
||||||
[new Array(3).fill(0), new Array(3).fill(0), new Array(3).fill(0)]
|
[new Array(3).fill(0), new Array(3).fill(0), new Array(3).fill(0)]
|
||||||
);
|
);
|
||||||
const dfB = dfA.mapColumns(() => {
|
const dfB = dfA.mapColumns(() => new Array(3).fill(1));
|
||||||
return new Array(3).fill(1);
|
|
||||||
});
|
|
||||||
expect(dfA).not.toBe(dfB);
|
expect(dfA).not.toBe(dfB);
|
||||||
expect(dfB.iat(0, 0)).toEqual(1);
|
expect(dfB.iat(0, 0)).toEqual(1);
|
||||||
expect(dfB.iat(0, 1)).toEqual(1);
|
expect(dfB.iat(0, 1)).toEqual(1);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ module.exports = {
|
|||||||
"@babel/plugin-proposal-function-bind",
|
"@babel/plugin-proposal-function-bind",
|
||||||
["@babel/plugin-proposal-decorators", { legacy: true }],
|
["@babel/plugin-proposal-decorators", { legacy: true }],
|
||||||
["@babel/plugin-proposal-class-properties", { loose: true }],
|
["@babel/plugin-proposal-class-properties", { loose: true }],
|
||||||
|
["@babel/plugin-proposal-private-methods", { loose: true }],
|
||||||
"@babel/plugin-proposal-export-namespace-from",
|
"@babel/plugin-proposal-export-namespace-from",
|
||||||
"@babel/plugin-proposal-optional-chaining",
|
"@babel/plugin-proposal-optional-chaining",
|
||||||
"@babel/plugin-proposal-nullish-coalescing-operator",
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
|
|||||||
@@ -10,13 +10,13 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
"@babel/preset-react",
|
"@babel/preset-react",
|
||||||
// eslint-disable-next-line prettier/prettier --- FIXME: disabled temporarily on migrate to TS.
|
"@babel/preset-typescript",
|
||||||
"@babel/preset-typescript"
|
|
||||||
],
|
],
|
||||||
plugins: [
|
plugins: [
|
||||||
"@babel/plugin-proposal-function-bind",
|
"@babel/plugin-proposal-function-bind",
|
||||||
["@babel/plugin-proposal-decorators", { legacy: true }],
|
["@babel/plugin-proposal-decorators", { legacy: true }],
|
||||||
["@babel/plugin-proposal-class-properties", { loose: true }],
|
["@babel/plugin-proposal-class-properties", { loose: true }],
|
||||||
|
["@babel/plugin-proposal-private-methods", { loose: true }],
|
||||||
"@babel/plugin-proposal-export-namespace-from",
|
"@babel/plugin-proposal-export-namespace-from",
|
||||||
"@babel/plugin-transform-react-constant-elements",
|
"@babel/plugin-transform-react-constant-elements",
|
||||||
"@babel/plugin-transform-runtime",
|
"@babel/plugin-transform-runtime",
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ module.exports = {
|
|||||||
"plugin:eslint-comments/recommended",
|
"plugin:eslint-comments/recommended",
|
||||||
"plugin:@blueprintjs/recommended",
|
"plugin:@blueprintjs/recommended",
|
||||||
"plugin:compat/recommended",
|
"plugin:compat/recommended",
|
||||||
"plugin:prettier/recommended",
|
"plugin:jsx-a11y/recommended",
|
||||||
|
// (thuang) disable eslint formatting rules, so prettier can do its job
|
||||||
|
// Do not use `plugin:prettier/recommended` per doc below:
|
||||||
|
// https://prettier.io/docs/en/integrating-with-linters.html
|
||||||
|
"prettier",
|
||||||
],
|
],
|
||||||
settings: {
|
settings: {
|
||||||
// AbortController is not supported in iOS Safari 10.3, Chrome 61
|
// AbortController is not supported in iOS Safari 10.3, Chrome 61
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
"*.{js,ts,jsx,tsx}": "eslint --fix",
|
"*.{js,ts,jsx,tsx}": "eslint --fix",
|
||||||
|
"**/*": "prettier --write --ignore-unknown",
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/cellxgene-logo.png"
|
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/cellxgene-logo.png"
|
||||||
style="width: 320px;"
|
style="width: 320px"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
style="
|
style="
|
||||||
@@ -37,36 +37,34 @@
|
|||||||
max-width: 550px;
|
max-width: 550px;
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<div style="margin-bottom: 0; font-weight: bolder; font-size: 1.2em;">
|
<div style="margin-bottom: 0; font-weight: bolder; font-size: 1.2em">
|
||||||
Unsupported Browser
|
Unsupported Browser
|
||||||
</div>
|
</div>
|
||||||
<div style="margin-top: 0;">
|
<div style="margin-top: 0">
|
||||||
cellxgene is currently supported on the following browsers
|
cellxgene is currently supported on the following browsers
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div style="display: flex; justify-content: space-around; margin-top: 16px">
|
||||||
style="display: flex; justify-content: space-around; margin-top: 16px;"
|
|
||||||
>
|
|
||||||
<a
|
<a
|
||||||
href="https://www.google.com/chrome/?hl=en%22"
|
href="https://www.google.com/chrome/?hl=en%22"
|
||||||
aria-label="Download Google Chrome"
|
aria-label="Download Google Chrome"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/chrome.png"
|
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/chrome.png"
|
||||||
style="width: 80px; height: 80px;"
|
style="width: 80px; height: 80px"
|
||||||
/>
|
/>
|
||||||
<div>Chrome > 60</div>
|
<div>Chrome > 60</div>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://www.mozilla.com/firefox/" aria-label="Download Firefox">
|
<a href="https://www.mozilla.com/firefox/" aria-label="Download Firefox">
|
||||||
<img
|
<img
|
||||||
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/firefox.png"
|
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/firefox.png"
|
||||||
style="width: 80px; height: 80px;"
|
style="width: 80px; height: 80px"
|
||||||
/>
|
/>
|
||||||
<div>Firefox ≥ 60</div>
|
<div>Firefox ≥ 60</div>
|
||||||
</a>
|
</a>
|
||||||
<a href="//www.microsoft.com/edge" aria-label="Download Edge">
|
<a href="//www.microsoft.com/edge" aria-label="Download Edge">
|
||||||
<img
|
<img
|
||||||
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/edge.png"
|
src="https://cellxgene.cziscience.com/s3/cellxgene/static/images/edge.png"
|
||||||
style="width: 80px; height: 80px;"
|
style="width: 80px; height: 80px"
|
||||||
/>
|
/>
|
||||||
<div>Edge ≥ 79</div>
|
<div>Edge ≥ 79</div>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
Generated
+11296
-7643
File diff suppressed because it is too large
Load Diff
+6
-1
@@ -143,7 +143,6 @@
|
|||||||
"eslint-plugin-import": "^2.22.0",
|
"eslint-plugin-import": "^2.22.0",
|
||||||
"eslint-plugin-jest": "^24.3.5",
|
"eslint-plugin-jest": "^24.3.5",
|
||||||
"eslint-plugin-jsx-a11y": "^6.3.1",
|
"eslint-plugin-jsx-a11y": "^6.3.1",
|
||||||
"eslint-plugin-prettier": "^3.4.0",
|
|
||||||
"eslint-plugin-react": "^7.23.2",
|
"eslint-plugin-react": "^7.23.2",
|
||||||
"eslint-plugin-react-hooks": "^4.0.8",
|
"eslint-plugin-react-hooks": "^4.0.8",
|
||||||
"expect-puppeteer": "^5.0.0",
|
"expect-puppeteer": "^5.0.0",
|
||||||
@@ -216,6 +215,12 @@
|
|||||||
"loose": true
|
"loose": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"@babel/plugin-proposal-private-methods",
|
||||||
|
{
|
||||||
|
"loose": true
|
||||||
|
}
|
||||||
|
],
|
||||||
"@babel/plugin-proposal-export-namespace-from",
|
"@babel/plugin-proposal-export-namespace-from",
|
||||||
"@babel/plugin-transform-react-constant-elements",
|
"@babel/plugin-transform-react-constant-elements",
|
||||||
"@babel/plugin-transform-runtime",
|
"@babel/plugin-transform-runtime",
|
||||||
|
|||||||
@@ -249,10 +249,12 @@ export default class AnnoMatrixObsCrossfilter {
|
|||||||
const { annoMatrix } = this;
|
const { annoMatrix } = this;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const currentDims = (this as any).obsCrossfilter.dimensionNames();
|
const currentDims = (this as any).obsCrossfilter.dimensionNames();
|
||||||
// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'xfltr' implicitly has an 'any' type.
|
const obsCrossfilter = currentDims.reduce(
|
||||||
const obsCrossfilter = currentDims.reduce((xfltr, dim) => {
|
// @ts-expect-error ts-migrate(7006) FIXME: Parameter 'xfltr' implicitly has an 'any' type.
|
||||||
return xfltr.select(dim, { mode: "all" });
|
(xfltr, dim) => xfltr.select(dim, { mode: "all" }),
|
||||||
}, (this as any).obsCrossfilter); // eslint-disable-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
|
(this as any).obsCrossfilter
|
||||||
|
); // eslint-disable-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
return new AnnoMatrixObsCrossfilter(annoMatrix, obsCrossfilter);
|
return new AnnoMatrixObsCrossfilter(annoMatrix, obsCrossfilter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,9 +23,7 @@ export function _fetchResult(promise: any) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
res.status = () => {
|
res.status = () => _status;
|
||||||
return _status;
|
|
||||||
};
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,17 +2,15 @@ import React from "react";
|
|||||||
import * as globals from "../../globals";
|
import * as globals from "../../globals";
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
const ErrorLoading = ({ displayName, zebra }: any) => {
|
const ErrorLoading = ({ displayName, zebra }: any) => (
|
||||||
return (
|
<div
|
||||||
<div
|
style={{
|
||||||
style={{
|
backgroundColor: zebra ? globals.lightestGrey : "white",
|
||||||
backgroundColor: zebra ? globals.lightestGrey : "white",
|
fontStyle: "italic",
|
||||||
fontStyle: "italic",
|
}}
|
||||||
}}
|
>
|
||||||
>
|
<span>{`Failure loading ${displayName}`}</span>
|
||||||
<span>{`Failure loading ${displayName}`}</span>
|
</div>
|
||||||
</div>
|
);
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default ErrorLoading;
|
export default ErrorLoading;
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ const HistogramFooter = React.memo(
|
|||||||
isObs,
|
isObs,
|
||||||
// @ts-expect-error ts-migrate(2339) FIXME: Property 'isGeneSetSummary' does not exist on type... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2339) FIXME: Property 'isGeneSetSummary' does not exist on type... Remove this comment to see the full error message
|
||||||
isGeneSetSummary,
|
isGeneSetSummary,
|
||||||
}) => {
|
}) => (
|
||||||
/*
|
/*
|
||||||
Footer of each histogram. Will render range and title.
|
Footer of each histogram. Will render range and title.
|
||||||
|
|
||||||
@@ -28,44 +28,42 @@ const HistogramFooter = React.memo(
|
|||||||
* range - length two array, [min, max], containing the range values to display
|
* range - length two array, [min, max], containing the range values to display
|
||||||
* rangeColor - length two array, [mincolor, maxcolor], each a CSS color
|
* rangeColor - length two array, [mincolor, maxcolor], each a CSS color
|
||||||
*/
|
*/
|
||||||
return (
|
<div>
|
||||||
<div>
|
<div
|
||||||
<div
|
style={{
|
||||||
|
display: "flex",
|
||||||
|
justifyContent: hideRanges ? "center" : "space-between",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<span
|
||||||
style={{
|
style={{
|
||||||
display: "flex",
|
color: rangeColorMin,
|
||||||
justifyContent: hideRanges ? "center" : "space-between",
|
display: hideRanges ? "none" : "block",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span
|
min {rangeMin.toPrecision(4)}
|
||||||
style={{
|
</span>
|
||||||
color: rangeColorMin,
|
<span
|
||||||
display: hideRanges ? "none" : "block",
|
data-testclass="brushable-histogram-field-name"
|
||||||
}}
|
style={{ fontStyle: "italic" }}
|
||||||
>
|
>
|
||||||
min {rangeMin.toPrecision(4)}
|
{isObs && displayName}
|
||||||
</span>
|
{isGeneSetSummary && "gene set mean expression"}
|
||||||
<span
|
</span>
|
||||||
data-testclass="brushable-histogram-field-name"
|
<div style={{ display: hideRanges ? "block" : "none" }}>
|
||||||
style={{ fontStyle: "italic" }}
|
: {rangeMin}
|
||||||
>
|
|
||||||
{isObs && displayName}
|
|
||||||
{isGeneSetSummary && "gene set mean expression"}
|
|
||||||
</span>
|
|
||||||
<div style={{ display: hideRanges ? "block" : "none" }}>
|
|
||||||
: {rangeMin}
|
|
||||||
</div>
|
|
||||||
<span
|
|
||||||
style={{
|
|
||||||
color: rangeColorMax,
|
|
||||||
display: hideRanges ? "none" : "block",
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
max {rangeMax.toPrecision(4)}
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
color: rangeColorMax,
|
||||||
|
display: hideRanges ? "none" : "block",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
max {rangeMax.toPrecision(4)}
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
</div>
|
||||||
}
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
export default HistogramFooter;
|
export default HistogramFooter;
|
||||||
|
|||||||
@@ -118,9 +118,9 @@ class HistogramBrush extends React.PureComponent {
|
|||||||
|
|
||||||
// @ts-expect-error ts-migrate(6133) FIXME: 'selection' is declared but its value is never rea... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(6133) FIXME: 'selection' is declared but its value is never rea... Remove this comment to see the full error message
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
onBrushEnd = (selection: any, x: any) => {
|
onBrushEnd = (selection: any, x: any) =>
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
return () => {
|
() => {
|
||||||
const {
|
const {
|
||||||
// @ts-expect-error ts-migrate(2339) FIXME: Property 'dispatch' does not exist on type 'Readon... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2339) FIXME: Property 'dispatch' does not exist on type 'Readon... Remove this comment to see the full error message
|
||||||
dispatch,
|
dispatch,
|
||||||
@@ -190,7 +190,6 @@ class HistogramBrush extends React.PureComponent {
|
|||||||
actions.selectContinuousMetadataAction(type, query, range, otherProps)
|
actions.selectContinuousMetadataAction(type, query, range, otherProps)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
handleSetGeneAsScatterplotX = () => {
|
handleSetGeneAsScatterplotX = () => {
|
||||||
|
|||||||
@@ -4,41 +4,38 @@ import { Button } from "@blueprintjs/core";
|
|||||||
import * as globals from "../../globals";
|
import * as globals from "../../globals";
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
const StillLoading = ({ zebra, displayName }: any) => {
|
const StillLoading = ({ zebra, displayName }: any) => (
|
||||||
/*
|
/*
|
||||||
Render a loading indicator for the field.
|
Render a loading indicator for the field.
|
||||||
*/
|
*/
|
||||||
return (
|
<div
|
||||||
|
data-testclass="gene-loading-spinner"
|
||||||
|
style={{
|
||||||
|
padding: globals.leftSidebarSectionPadding,
|
||||||
|
backgroundColor: zebra ? globals.lightestGrey : "white",
|
||||||
|
}}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
data-testclass="gene-loading-spinner"
|
|
||||||
style={{
|
style={{
|
||||||
padding: globals.leftSidebarSectionPadding,
|
display: "flex",
|
||||||
backgroundColor: zebra ? globals.lightestGrey : "white",
|
justifyContent: "space-between",
|
||||||
|
justifyItems: "center",
|
||||||
|
alignItems: "center",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
<div style={{ minWidth: 30 }} />
|
||||||
|
<div style={{ display: "flex", alignSelf: "center" }}>
|
||||||
|
<span style={{ fontStyle: "italic" }}>{displayName}</span>
|
||||||
|
</div>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: "flex",
|
display: "flex",
|
||||||
justifyContent: "space-between",
|
justifyContent: "flex-end",
|
||||||
justifyItems: "center",
|
|
||||||
alignItems: "center",
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div style={{ minWidth: 30 }} />
|
<Button minimal loading intent="primary" />
|
||||||
<div style={{ display: "flex", alignSelf: "center" }}>
|
|
||||||
<span style={{ fontStyle: "italic" }}>{displayName}</span>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
style={{
|
|
||||||
display: "flex",
|
|
||||||
justifyContent: "flex-end",
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Button minimal loading intent="primary" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
</div>
|
||||||
};
|
);
|
||||||
|
|
||||||
export default StillLoading;
|
export default StillLoading;
|
||||||
|
|||||||
@@ -35,18 +35,16 @@ class DuplicateCategorySelect extends React.PureComponent<{}, State> {
|
|||||||
[] /* this is a placeholder, could be a subcomponent to avoid this */
|
[] /* this is a placeholder, could be a subcomponent to avoid this */
|
||||||
}
|
}
|
||||||
filterable={false}
|
filterable={false}
|
||||||
itemRenderer={(d, { handleClick }) => {
|
itemRenderer={(d, { handleClick }) => (
|
||||||
return (
|
<MenuItem
|
||||||
<MenuItem
|
data-testclass="duplicate-category-dropdown-option"
|
||||||
data-testclass="duplicate-category-dropdown-option"
|
onClick={handleClick}
|
||||||
onClick={handleClick}
|
// @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'Key | nu... Remove this comment to see the full error message
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'Key | nu... Remove this comment to see the full error message
|
key={d}
|
||||||
key={d}
|
// @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'ReactNod... Remove this comment to see the full error message
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'ReactNod... Remove this comment to see the full error message
|
text={d}
|
||||||
text={d}
|
/>
|
||||||
/>
|
)}
|
||||||
);
|
|
||||||
}}
|
|
||||||
noResults={<MenuItem disabled text="No results." />}
|
noResults={<MenuItem disabled text="No results." />}
|
||||||
onItemSelect={(d) => {
|
onItemSelect={(d) => {
|
||||||
handleModalDuplicateCategorySelection(d);
|
handleModalDuplicateCategorySelection(d);
|
||||||
|
|||||||
@@ -78,9 +78,8 @@ class Category extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
instruction = (label: any) => {
|
instruction = (label: any) =>
|
||||||
return labelPrompt(this.labelNameError(label), "New, unique label", ":");
|
labelPrompt(this.labelNameError(label), "New, unique label", ":");
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
handleChangeOrSelect = (label: any) => {
|
handleChangeOrSelect = (label: any) => {
|
||||||
|
|||||||
@@ -105,13 +105,12 @@ class AnnoDialogEditCategoryName extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
instruction = (name: any) => {
|
instruction = (name: any) =>
|
||||||
return labelPrompt(
|
labelPrompt(
|
||||||
this.editedCategoryNameError(name),
|
this.editedCategoryNameError(name),
|
||||||
"New, unique category name",
|
"New, unique category name",
|
||||||
":"
|
":"
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
allCategoryNames() {
|
allCategoryNames() {
|
||||||
|
|||||||
@@ -342,57 +342,54 @@ class Category extends React.PureComponent {
|
|||||||
export default Category;
|
export default Category;
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const StillLoading = ({ metadataField, checkboxID }: any) => {
|
const StillLoading = ({ metadataField, checkboxID }: any) => (
|
||||||
/*
|
/*
|
||||||
We are still loading this category, so render a "busy" signal.
|
We are still loading this category, so render a "busy" signal.
|
||||||
*/
|
*/
|
||||||
return (
|
<div
|
||||||
|
style={{
|
||||||
|
maxWidth: globals.maxControlsWidth,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
maxWidth: globals.maxControlsWidth,
|
display: "flex",
|
||||||
|
justifyContent: "space-between",
|
||||||
|
alignItems: "baseline",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
display: "flex",
|
display: "flex",
|
||||||
justifyContent: "space-between",
|
justifyContent: "flex-start",
|
||||||
alignItems: "baseline",
|
alignItems: "flex-start",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div
|
<label
|
||||||
style={{
|
htmlFor={checkboxID}
|
||||||
display: "flex",
|
className={`${Classes.CONTROL} ${Classes.CHECKBOX}`}
|
||||||
justifyContent: "flex-start",
|
|
||||||
alignItems: "flex-start",
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<label
|
<input disabled id={checkboxID} checked type="checkbox" />
|
||||||
htmlFor={checkboxID}
|
<span className={Classes.CONTROL_INDICATOR} />
|
||||||
className={`${Classes.CONTROL} ${Classes.CHECKBOX}`}
|
</label>
|
||||||
|
<Truncate>
|
||||||
|
<span
|
||||||
|
style={{
|
||||||
|
cursor: "pointer",
|
||||||
|
display: "inline-block",
|
||||||
|
width: LABEL_WIDTH,
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<input disabled id={checkboxID} checked type="checkbox" />
|
{metadataField}
|
||||||
<span className={Classes.CONTROL_INDICATOR} />
|
</span>
|
||||||
</label>
|
</Truncate>
|
||||||
<Truncate>
|
</div>
|
||||||
<span
|
<div>
|
||||||
style={{
|
<Button minimal loading intent="primary" />
|
||||||
cursor: "pointer",
|
|
||||||
display: "inline-block",
|
|
||||||
width: LABEL_WIDTH,
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{metadataField}
|
|
||||||
</span>
|
|
||||||
</Truncate>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<Button minimal loading intent="primary" />
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
</div>
|
||||||
};
|
);
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const ErrorLoading = ({ metadataField, error }: any) => {
|
const ErrorLoading = ({ metadataField, error }: any) => {
|
||||||
console.error(error); // log error to console as it is unexpected.
|
console.error(error); // log error to console as it is unexpected.
|
||||||
|
|||||||
@@ -116,13 +116,8 @@ class Categories extends React.Component<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
instruction = (name: any) => {
|
instruction = (name: any) =>
|
||||||
return labelPrompt(
|
labelPrompt(this.categoryNameError(name), "New, unique category name", ":");
|
||||||
this.categoryNameError(name),
|
|
||||||
"New, unique category name",
|
|
||||||
":"
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
onExpansionChange = (catName: any) => {
|
onExpansionChange = (catName: any) => {
|
||||||
|
|||||||
@@ -151,9 +151,8 @@ class CategoryValue extends React.Component<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
instruction = (label: any) => {
|
instruction = (label: any) =>
|
||||||
return labelPrompt(this.labelNameError(label), "New, unique label", ":");
|
labelPrompt(this.labelNameError(label), "New, unique label", ":");
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
activateEditLabelMode = () => {
|
activateEditLabelMode = () => {
|
||||||
|
|||||||
@@ -19,16 +19,14 @@ import { getDiscreteCellEmbeddingRowIndex } from "../../util/stateManager/viewSt
|
|||||||
type EmbeddingState = any;
|
type EmbeddingState = any;
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
||||||
@connect((state) => {
|
@connect((state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
layoutChoice: (state as any).layoutChoice,
|
||||||
layoutChoice: (state as any).layoutChoice,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
schema: (state as any).annoMatrix?.schema,
|
||||||
schema: (state as any).annoMatrix?.schema,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
crossfilter: (state as any).obsCrossfilter,
|
||||||
crossfilter: (state as any).obsCrossfilter,
|
}))
|
||||||
};
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
class Embedding extends React.PureComponent<{}, EmbeddingState> {
|
class Embedding extends React.PureComponent<{}, EmbeddingState> {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
|
|||||||
@@ -11,12 +11,10 @@ import CreateGenesetDialogue from "./menus/createGenesetDialogue";
|
|||||||
type State = any;
|
type State = any;
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
||||||
@connect((state) => {
|
@connect((state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
genesets: (state as any).genesets.genesets,
|
||||||
genesets: (state as any).genesets.genesets,
|
}))
|
||||||
};
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
class GeneExpression extends React.Component<{}, State> {
|
class GeneExpression extends React.Component<{}, State> {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
@@ -53,18 +51,17 @@ class GeneExpression extends React.Component<{}, State> {
|
|||||||
dispatch({ type: "geneset: activate add new geneset mode" });
|
dispatch({ type: "geneset: activate add new geneset mode" });
|
||||||
if (!geneSetsExpanded) {
|
if (!geneSetsExpanded) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
this.setState((state: any) => {
|
this.setState((state: any) => ({ ...state, geneSetsExpanded: true }));
|
||||||
return { ...state, geneSetsExpanded: true };
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
handleExpandGeneSets = () => {
|
handleExpandGeneSets = () => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
this.setState((state: any) => {
|
this.setState((state: any) => ({
|
||||||
return { ...state, geneSetsExpanded: !state.geneSetsExpanded };
|
...state,
|
||||||
});
|
geneSetsExpanded: !state.geneSetsExpanded,
|
||||||
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
|
|||||||
@@ -55,16 +55,14 @@ const filterGenes = (query: any, genes: any) =>
|
|||||||
type AddGenesState = any;
|
type AddGenesState = any;
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
||||||
@connect((state) => {
|
@connect((state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
annoMatrix: (state as any).annoMatrix,
|
||||||
annoMatrix: (state as any).annoMatrix,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
userDefinedGenes: (state as any).controls.userDefinedGenes,
|
||||||
userDefinedGenes: (state as any).controls.userDefinedGenes,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
userDefinedGenesLoading: (state as any).controls.userDefinedGenesLoading,
|
||||||
userDefinedGenesLoading: (state as any).controls.userDefinedGenesLoading,
|
}))
|
||||||
};
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
class AddGenes extends React.Component<{}, AddGenesState> {
|
class AddGenes extends React.Component<{}, AddGenesState> {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
@@ -291,9 +289,7 @@ class AddGenes extends React.Component<{}, AddGenesState> {
|
|||||||
initialContent={<MenuItem disabled text="Enter a gene…" />}
|
initialContent={<MenuItem disabled text="Enter a gene…" />}
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ "data-testid": string; }' is not assignabl... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ "data-testid": string; }' is not assignabl... Remove this comment to see the full error message
|
||||||
inputProps={{ "data-testid": "gene-search" }}
|
inputProps={{ "data-testid": "gene-search" }}
|
||||||
inputValueRenderer={() => {
|
inputValueRenderer={() => ""}
|
||||||
return "";
|
|
||||||
}}
|
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type '(query: any, genes: any) => Fuzzysort.Result... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '(query: any, genes: any) => Fuzzysort.Result... Remove this comment to see the full error message
|
||||||
itemListPredicate={filterGenes}
|
itemListPredicate={filterGenes}
|
||||||
onActiveItemChange={(item) => this.setState({ activeItem: item })}
|
onActiveItemChange={(item) => this.setState({ activeItem: item })}
|
||||||
|
|||||||
@@ -90,9 +90,7 @@ class CreateGenesetDialogue extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
genesetNameError = () => {
|
genesetNameError = () => false;
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
handleChange = (e: any) => {
|
handleChange = (e: any) => {
|
||||||
@@ -113,11 +111,10 @@ class CreateGenesetDialogue extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
instruction = (genesetName: any, genesets: any) => {
|
instruction = (genesetName: any, genesets: any) =>
|
||||||
return genesets.has(genesetName)
|
genesets.has(genesetName)
|
||||||
? "Gene set name must be unique."
|
? "Gene set name must be unique."
|
||||||
: "New, unique gene set name";
|
: "New, unique gene set name";
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
validate = (genesetName: any, genesets: any) => {
|
validate = (genesetName: any, genesets: any) => {
|
||||||
|
|||||||
@@ -66,9 +66,7 @@ class RenameGeneset extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
genesetNameError = () => {
|
genesetNameError = () => false;
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
handleChange = (e: any) => {
|
handleChange = (e: any) => {
|
||||||
@@ -81,14 +79,11 @@ class RenameGeneset extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
validate = (genesetName: any, genesets: any) => {
|
validate = (genesetName: any, genesets: any) =>
|
||||||
return (
|
!genesets.has(genesetName) &&
|
||||||
!genesets.has(genesetName) &&
|
// eslint-disable-next-line no-control-regex -- unicode 0-31 127-65535
|
||||||
// eslint-disable-next-line no-control-regex -- unicode 0-31 127-65535
|
genesetName.match(/^\s|[\u0000-\u001F\u007F-\uFFFF]|[ ]{2,}|^$|\s$/g)
|
||||||
genesetName.match(/^\s|[\u0000-\u001F\u007F-\uFFFF]|[ ]{2,}|^$|\s$/g)
|
?.length;
|
||||||
?.length
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
render() {
|
render() {
|
||||||
|
|||||||
@@ -21,14 +21,12 @@ import AddGeneToGenesetDialogue from "./addGeneToGenesetDialogue";
|
|||||||
type State = any;
|
type State = any;
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
||||||
@connect((state) => {
|
@connect((state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
genesetsUI: (state as any).genesetsUI,
|
||||||
genesetsUI: (state as any).genesetsUI,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
colorAccessor: (state as any).colors.colorAccessor,
|
||||||
colorAccessor: (state as any).colors.colorAccessor,
|
}))
|
||||||
};
|
|
||||||
})
|
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
class GenesetMenus extends React.PureComponent<{}, State> {
|
class GenesetMenus extends React.PureComponent<{}, State> {
|
||||||
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/ban-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
|
|||||||
@@ -28,17 +28,14 @@ function QuickGene() {
|
|||||||
const [, setStatus] = useState("pending");
|
const [, setStatus] = useState("pending");
|
||||||
|
|
||||||
const { annoMatrix, userDefinedGenes, userDefinedGenesLoading } = useSelector(
|
const { annoMatrix, userDefinedGenes, userDefinedGenesLoading } = useSelector(
|
||||||
(state) => {
|
(state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
annoMatrix: (state as any).annoMatrix,
|
||||||
annoMatrix: (state as any).annoMatrix,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
userDefinedGenes: (state as any).controls.userDefinedGenes,
|
||||||
userDefinedGenes: (state as any).controls.userDefinedGenes,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
userDefinedGenesLoading: (state as any).controls.userDefinedGenesLoading,
|
||||||
userDefinedGenesLoading: (state as any).controls
|
})
|
||||||
.userDefinedGenesLoading,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const prevProps = usePrevious({ annoMatrix });
|
const prevProps = usePrevious({ annoMatrix });
|
||||||
@@ -121,10 +118,10 @@ function QuickGene() {
|
|||||||
dispatch({ type: "clear user defined gene", data: gene });
|
dispatch({ type: "clear user defined gene", data: gene });
|
||||||
};
|
};
|
||||||
|
|
||||||
const QuickGenes = useMemo(() => {
|
const QuickGenes = useMemo(
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
() =>
|
||||||
return userDefinedGenes.map((gene: any) => {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
return (
|
userDefinedGenes.map((gene: any) => (
|
||||||
<Gene
|
<Gene
|
||||||
key={`quick=${gene}`}
|
key={`quick=${gene}`}
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ key: string; gene: any; removeGene: (gene:... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '{ key: string; gene: any; removeGene: (gene:... Remove this comment to see the full error message
|
||||||
@@ -132,9 +129,9 @@ function QuickGene() {
|
|||||||
removeGene={removeGene}
|
removeGene={removeGene}
|
||||||
quickGene
|
quickGene
|
||||||
/>
|
/>
|
||||||
);
|
)),
|
||||||
});
|
[userDefinedGenes]
|
||||||
}, [userDefinedGenes]);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={{ width: "100%", marginBottom: "16px" }}>
|
<div style={{ width: "100%", marginBottom: "16px" }}>
|
||||||
@@ -177,9 +174,7 @@ function QuickGene() {
|
|||||||
leftIcon: IconNames.SEARCH,
|
leftIcon: IconNames.SEARCH,
|
||||||
fill: true,
|
fill: true,
|
||||||
}}
|
}}
|
||||||
inputValueRenderer={() => {
|
inputValueRenderer={() => ""}
|
||||||
return "";
|
|
||||||
}}
|
|
||||||
// @ts-expect-error ts-migrate(2322) FIXME: Type '(query: any, genes: any) => Fuzzysort.Result... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2322) FIXME: Type '(query: any, genes: any) => Fuzzysort.Result... Remove this comment to see the full error message
|
||||||
itemListPredicate={filterGenes}
|
itemListPredicate={filterGenes}
|
||||||
itemRenderer={renderGene}
|
itemRenderer={renderGene}
|
||||||
|
|||||||
@@ -355,9 +355,10 @@ class Graph extends React.Component<{}, GraphState> {
|
|||||||
if (camera.handleEvent(e, projectionTF)) {
|
if (camera.handleEvent(e, projectionTF)) {
|
||||||
this.renderCanvas();
|
this.renderCanvas();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
this.setState((state: any) => {
|
this.setState((state: any) => ({
|
||||||
return { ...state, updateOverlay: !state.updateOverlay };
|
...state,
|
||||||
});
|
updateOverlay: !state.updateOverlay,
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1036,32 +1037,29 @@ const ErrorLoading = ({ displayName, error, width, height }: any) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
const StillLoading = ({ displayName, width, height }: any) => {
|
const StillLoading = ({ displayName, width, height }: any) => (
|
||||||
/*
|
/*
|
||||||
Render a busy/loading indicator
|
Render a busy/loading indicator
|
||||||
*/
|
*/
|
||||||
return (
|
<div
|
||||||
|
style={{
|
||||||
|
position: "fixed",
|
||||||
|
fontWeight: 500,
|
||||||
|
top: height / 2,
|
||||||
|
width,
|
||||||
|
}}
|
||||||
|
>
|
||||||
<div
|
<div
|
||||||
style={{
|
style={{
|
||||||
position: "fixed",
|
display: "flex",
|
||||||
fontWeight: 500,
|
justifyContent: "center",
|
||||||
top: height / 2,
|
justifyItems: "center",
|
||||||
width,
|
alignItems: "center",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div
|
<Button minimal loading intent="primary" />
|
||||||
style={{
|
<span style={{ fontStyle: "italic" }}>Loading {displayName}</span>
|
||||||
display: "flex",
|
|
||||||
justifyContent: "center",
|
|
||||||
justifyItems: "center",
|
|
||||||
alignItems: "center",
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<Button minimal loading intent="primary" />
|
|
||||||
<span style={{ fontStyle: "italic" }}>Loading {displayName}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
</div>
|
||||||
};
|
);
|
||||||
|
|
||||||
export default Graph;
|
export default Graph;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ export default class GraphOverlayLayer extends PureComponent<{}, State> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
matrixToTransformString = (m: any) => {
|
matrixToTransformString = (m: any) =>
|
||||||
/*
|
/*
|
||||||
Translates the gl-matrix mat3 to SVG matrix transform style
|
Translates the gl-matrix mat3 to SVG matrix transform style
|
||||||
|
|
||||||
@@ -32,21 +32,20 @@ export default class GraphOverlayLayer extends PureComponent<{}, State> {
|
|||||||
b d f / [a, b, 0, c, d, 0, e, f, 1] => matrix(a, b, c, d, e, f) / matrix(sx, 0, 0, sy, tx, ty) / matrix(m[0] m[3] m[1] m[4] m[6] m[7])
|
b d f / [a, b, 0, c, d, 0, e, f, 1] => matrix(a, b, c, d, e, f) / matrix(sx, 0, 0, sy, tx, ty) / matrix(m[0] m[3] m[1] m[4] m[6] m[7])
|
||||||
0 0 1
|
0 0 1
|
||||||
*/
|
*/
|
||||||
return `matrix(${m[0]} ${m[1]} ${m[3]} ${m[4]} ${m[6]} ${m[7]})`;
|
`matrix(${m[0]} ${m[1]} ${m[3]} ${m[4]} ${m[6]} ${m[7]})`;
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
reverseMatrixScaleTransformString = (m: any) => {
|
reverseMatrixScaleTransformString = (m: any) =>
|
||||||
return `matrix(${1 / m[0]} 0 0 ${1 / m[4]} 0 0)`;
|
`matrix(${1 / m[0]} 0 0 ${1 / m[4]} 0 0)`;
|
||||||
};
|
|
||||||
|
|
||||||
// This is passed to all children, should be called when an overlay's display state is toggled along with the overlay name and its new display state in boolean form
|
// This is passed to all children, should be called when an overlay's display state is toggled along with the overlay name and its new display state in boolean form
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
overlaySetShowing = (overlay: any, displaying: any) => {
|
overlaySetShowing = (overlay: any, displaying: any) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
this.setState((state: any) => {
|
this.setState((state: any) => ({
|
||||||
return { ...state, display: { ...state.display, [overlay]: displaying } };
|
...state,
|
||||||
});
|
display: { ...state.display, [overlay]: displaying },
|
||||||
|
}));
|
||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
|
|||||||
@@ -6,20 +6,18 @@ import InfoFormat from "./infoFormat";
|
|||||||
import { selectableCategoryNames } from "../../util/stateManager/controlsHelpers";
|
import { selectableCategoryNames } from "../../util/stateManager/controlsHelpers";
|
||||||
|
|
||||||
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(1238) FIXME: Unable to resolve signature of class decorator whe... Remove this comment to see the full error message
|
||||||
@connect((state) => {
|
@connect((state) => ({
|
||||||
return {
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
schema: (state as any).annoMatrix.schema,
|
||||||
schema: (state as any).annoMatrix.schema,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
datasetTitle: (state as any).config?.displayNames?.dataset ?? "",
|
||||||
datasetTitle: (state as any).config?.displayNames?.dataset ?? "",
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
aboutURL: (state as any).config?.links?.["about-dataset"],
|
||||||
aboutURL: (state as any).config?.links?.["about-dataset"],
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
isOpen: (state as any).controls.datasetDrawer,
|
||||||
isOpen: (state as any).controls.datasetDrawer,
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
dataPortalProps: (state as any).config?.corpora_props,
|
||||||
dataPortalProps: (state as any).config?.corpora_props,
|
}))
|
||||||
};
|
|
||||||
})
|
|
||||||
class InfoDrawer extends PureComponent {
|
class InfoDrawer extends PureComponent {
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
handleClose = () => {
|
handleClose = () => {
|
||||||
|
|||||||
@@ -100,16 +100,14 @@ const renderDatasetMetadata = (
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{Object.entries(corporaMetadata).map(([key, value]) => {
|
{Object.entries(corporaMetadata).map(([key, value]) => (
|
||||||
return (
|
<tr {...{ key }}>
|
||||||
<tr {...{ key }}>
|
<td>{`${key}:`}</td>
|
||||||
<td>{`${key}:`}</td>
|
{/* @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'ReactNod... Remove this comment to see the full error message */}
|
||||||
{/* @ts-expect-error ts-migrate(2322) FIXME: Type 'unknown' is not assignable to type 'ReactNod... Remove this comment to see the full error message */}
|
<td>{value}</td>
|
||||||
<td>{value}</td>
|
<td />
|
||||||
<td />
|
</tr>
|
||||||
</tr>
|
))}
|
||||||
);
|
|
||||||
})}
|
|
||||||
{Array.from(singleValueCategories).reduce((elems, pair) => {
|
{Array.from(singleValueCategories).reduce((elems, pair) => {
|
||||||
// @ts-expect-error ts-migrate(2488) FIXME: Type 'unknown' must have a '[Symbol.iterator]()' m... Remove this comment to see the full error message
|
// @ts-expect-error ts-migrate(2488) FIXME: Type 'unknown' must have a '[Symbol.iterator]()' m... Remove this comment to see the full error message
|
||||||
const [category, value] = pair;
|
const [category, value] = pair;
|
||||||
|
|||||||
@@ -251,12 +251,10 @@ class Scatterplot extends React.PureComponent<{}, State> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
getViewportDimensions = () => {
|
getViewportDimensions = () => ({
|
||||||
return {
|
height: window.innerHeight,
|
||||||
height: window.innerHeight,
|
width: window.innerWidth,
|
||||||
width: window.innerWidth,
|
});
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types --- FIXME: disabled temporarily on migrate to TS.
|
||||||
handleResize = () => {
|
handleResize = () => {
|
||||||
|
|||||||
+165
-167
@@ -33,178 +33,176 @@ const createFsmTransitions = (
|
|||||||
clear: any,
|
clear: any,
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
save: any
|
save: any
|
||||||
) => {
|
) => [
|
||||||
return [
|
/* graph selection brushing */
|
||||||
/* graph selection brushing */
|
{
|
||||||
{
|
event: "graph brush start",
|
||||||
event: "graph brush start",
|
from: "init",
|
||||||
from: "init",
|
to: "graph brush in progress",
|
||||||
to: "graph brush in progress",
|
action: stashPending,
|
||||||
action: stashPending,
|
},
|
||||||
},
|
{
|
||||||
{
|
event: "graph brush cancel",
|
||||||
event: "graph brush cancel",
|
from: "graph brush in progress",
|
||||||
from: "graph brush in progress",
|
to: "done",
|
||||||
to: "done",
|
action: applyPending,
|
||||||
action: applyPending,
|
},
|
||||||
},
|
{
|
||||||
{
|
event: "graph brush deselect",
|
||||||
event: "graph brush deselect",
|
from: "graph brush in progress",
|
||||||
from: "graph brush in progress",
|
to: "done",
|
||||||
to: "done",
|
/* if current selection is all, cancelPending. Else, applyPending */
|
||||||
/* if current selection is all, cancelPending. Else, applyPending */
|
// @ts-expect-error ts-migrate(6133) FIXME: 'fsm' is declared but its value is never read.
|
||||||
// @ts-expect-error ts-migrate(6133) FIXME: 'fsm' is declared but its value is never read.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
action: (fsm: any, transition: any, data: any) =>
|
||||||
action: (fsm: any, transition: any, data: any) =>
|
data.state.graphSelection.selection.mode === "all"
|
||||||
data.state.graphSelection.selection.mode === "all"
|
? cancelPending()
|
||||||
? cancelPending()
|
: applyPending(),
|
||||||
: applyPending(),
|
},
|
||||||
},
|
{
|
||||||
{
|
event: "graph brush end",
|
||||||
event: "graph brush end",
|
from: "graph brush in progress",
|
||||||
from: "graph brush in progress",
|
to: "done",
|
||||||
to: "done",
|
action: applyPending,
|
||||||
action: applyPending,
|
},
|
||||||
},
|
|
||||||
|
|
||||||
/* graph selection lasso */
|
/* graph selection lasso */
|
||||||
{
|
{
|
||||||
event: "graph lasso start",
|
event: "graph lasso start",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "graph lasso in progress",
|
to: "graph lasso in progress",
|
||||||
action: stashPending,
|
action: stashPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "graph lasso cancel",
|
event: "graph lasso cancel",
|
||||||
from: "graph lasso in progress",
|
from: "graph lasso in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "graph lasso deselect",
|
event: "graph lasso deselect",
|
||||||
from: "graph lasso in progress",
|
from: "graph lasso in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
/* if current selection is all, cancelPending. Else, applyPending */
|
/* if current selection is all, cancelPending. Else, applyPending */
|
||||||
// @ts-expect-error ts-migrate(6133) FIXME: 'fsm' is declared but its value is never read.
|
// @ts-expect-error ts-migrate(6133) FIXME: 'fsm' is declared but its value is never read.
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any --- FIXME: disabled temporarily on migrate to TS.
|
||||||
action: (fsm: any, transition: any, data: any) =>
|
action: (fsm: any, transition: any, data: any) =>
|
||||||
data.state.graphSelection.selection.mode === "all"
|
data.state.graphSelection.selection.mode === "all"
|
||||||
? cancelPending()
|
? cancelPending()
|
||||||
: applyPending(),
|
: applyPending(),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "graph lasso end",
|
event: "graph lasso end",
|
||||||
from: "graph lasso in progress",
|
from: "graph lasso in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Continuous metadata histogram brush selection */
|
/* Continuous metadata histogram brush selection */
|
||||||
{
|
{
|
||||||
event: "continuous metadata histogram start",
|
event: "continuous metadata histogram start",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "continuous histo select in progress",
|
to: "continuous histo select in progress",
|
||||||
action: stashPending,
|
action: stashPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "continuous metadata histogram cancel",
|
event: "continuous metadata histogram cancel",
|
||||||
from: "continuous histo select in progress",
|
from: "continuous histo select in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: cancelPending,
|
action: cancelPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "continuous metadata histogram cancel",
|
event: "continuous metadata histogram cancel",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: save,
|
action: save,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "continuous metadata histogram end",
|
event: "continuous metadata histogram end",
|
||||||
from: "continuous histo select in progress",
|
from: "continuous histo select in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Single gene request by user */
|
/* Single gene request by user */
|
||||||
{
|
{
|
||||||
event: "single user defined gene start",
|
event: "single user defined gene start",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "single user gene request in progress",
|
to: "single user gene request in progress",
|
||||||
action: stashPending,
|
action: stashPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "request user defined gene error",
|
event: "request user defined gene error",
|
||||||
from: "single user gene request in progress",
|
from: "single user gene request in progress",
|
||||||
to: "single user gene error in progress",
|
to: "single user gene error in progress",
|
||||||
action: skip,
|
action: skip,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "single user defined gene error",
|
event: "single user defined gene error",
|
||||||
from: "single user gene error in progress",
|
from: "single user gene error in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: cancelPending,
|
action: cancelPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "single user defined gene complete",
|
event: "single user defined gene complete",
|
||||||
from: "single user gene request in progress",
|
from: "single user gene request in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Bulk gene request by user */
|
/* Bulk gene request by user */
|
||||||
{
|
{
|
||||||
event: "bulk user defined gene start",
|
event: "bulk user defined gene start",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "bulk user gene request in progress",
|
to: "bulk user gene request in progress",
|
||||||
action: stashPending,
|
action: stashPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "request user defined gene error",
|
event: "request user defined gene error",
|
||||||
from: "bulk user gene request in progress",
|
from: "bulk user gene request in progress",
|
||||||
to: "bulk user gene request error in progress",
|
to: "bulk user gene request error in progress",
|
||||||
action: skip,
|
action: skip,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "bulk user defined gene error",
|
event: "bulk user defined gene error",
|
||||||
from: "bulk user gene request error in progress",
|
from: "bulk user gene request error in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: cancelPending,
|
action: cancelPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "bulk user defined gene complete",
|
event: "bulk user defined gene complete",
|
||||||
from: "bulk user gene request in progress",
|
from: "bulk user gene request in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Compute Differential Expression button user action */
|
/* Compute Differential Expression button user action */
|
||||||
{
|
{
|
||||||
event: "request differential expression started",
|
event: "request differential expression started",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "diffexp in progress",
|
to: "diffexp in progress",
|
||||||
action: stashPending,
|
action: stashPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "request user defined gene error",
|
event: "request user defined gene error",
|
||||||
from: "diffexp in progress",
|
from: "diffexp in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: cancelPending,
|
action: cancelPending,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
event: "request differential expression success",
|
event: "request differential expression success",
|
||||||
from: "diffexp in progress",
|
from: "diffexp in progress",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: applyPending,
|
action: applyPending,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* clear scatter plot button (eg, on scatterplot view) */
|
/* clear scatter plot button (eg, on scatterplot view) */
|
||||||
{
|
{
|
||||||
event: "clear scatterplot",
|
event: "clear scatterplot",
|
||||||
from: "init",
|
from: "init",
|
||||||
to: "done",
|
to: "done",
|
||||||
action: save,
|
action: save,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
};
|
|
||||||
|
|
||||||
export default createFsmTransitions;
|
export default createFsmTransitions;
|
||||||
|
|||||||
@@ -3,9 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any -- - FIXME: disabled temporarily on migrate to TS.
|
||||||
export default (n: any) => {
|
export default (n: any) =>
|
||||||
return n
|
n
|
||||||
.toExponential()
|
.toExponential()
|
||||||
.replace(/e[+\-0-9]*$/, "")
|
.replace(/e[+\-0-9]*$/, "")
|
||||||
.replace(/^0\.?0*|\./, "").length;
|
.replace(/^0\.?0*|\./, "").length;
|
||||||
};
|
|
||||||
|
|||||||
+32
-29
@@ -1,32 +1,35 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
// Allow @connect
|
// Allow @connect
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
// Ensure Babel can safely transpile files
|
// Ensure Babel can safely transpile files
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve",
|
"jsx": "preserve",
|
||||||
"lib": ["dom", "es2020"],
|
"lib": ["dom", "es2020"],
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"noUnusedLocals": true,
|
"noUnusedLocals": true,
|
||||||
"noUnusedParameters": true,
|
"noUnusedParameters": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"target": "esnext",
|
"target": "esnext",
|
||||||
"types": ["jest", "puppeteer", "jest-environment-puppeteer", "expect-puppeteer"],
|
"types": [
|
||||||
"forceConsistentCasingInFileNames": true,
|
"jest",
|
||||||
"resolveJsonModule": true
|
"puppeteer",
|
||||||
},
|
"jest-environment-puppeteer",
|
||||||
"include": [
|
"expect-puppeteer"
|
||||||
"src/**/*",
|
|
||||||
"configuration/**/*",
|
|
||||||
"__tests__/**/*",
|
|
||||||
"jest-puppeteer.config.js"
|
|
||||||
],
|
],
|
||||||
"exclude": [
|
"forceConsistentCasingInFileNames": true,
|
||||||
"__tests__/e2e/__snapshots__/**/*",
|
"resolveJsonModule": true
|
||||||
]
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*",
|
||||||
|
"configuration/**/*",
|
||||||
|
"__tests__/**/*",
|
||||||
|
"jest-puppeteer.config.js"
|
||||||
|
],
|
||||||
|
"exclude": ["__tests__/e2e/__snapshots__/**/*"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user