@@ -22,6 +22,7 @@ import GsStatistics from '../../genspectrum/GsStatistics.astro';
2222import { AnalyzeSingleVariantSelectorFallback } from ' ../../pageStateSelectors/FallbackElement' ;
2323import { SingleVariantPageStateSelector } from ' ../../pageStateSelectors/SingleVariantPageStateSelector' ;
2424import { sanitizeForFilename } from ' ../compareSideBySide/toDownloadLink' ;
25+ import LoadingListener from ' ../../LoadingListener.astro' ;
2526
2627type OrganismViewCompareVariant = OrganismWithViewKey <typeof singleVariantViewKey >;
2728interface Props {
@@ -58,6 +59,9 @@ const downloadLinks = noVariantSelected
5859 downloadFileBasename: ` ${organism }_${sanitizeForFilename (displayName )}_accessions ` ,
5960 },
6061 ];
62+
63+ const count =
64+ view .organismConstants .aggregatedVisualizations .singleVariant .length + 6 + (subdivisionField !== undefined ? 1 : 0 );
6165---
6266
6367<SingleVariantOrganismPageLayout view ={ view } downloadLinks ={ downloadLinks } >
@@ -71,75 +75,77 @@ const downloadLinks = noVariantSelected
7175 <AnalyzeSingleVariantSelectorFallback slot =' fallback' />
7276 </SingleVariantPageStateSelector >
7377
74- <div class =' mx-[8px] flex flex-col gap-y-6' slot =' dataDisplay' >
75- {
76- noVariantSelected && (
77- <SelectVariant >
78- <QuickstartLinks view = { view } />
79- </SelectVariant >
80- )
81- }
82- <GsStatistics numeratorFilter ={ variantLapisFilter } denominatorFilter ={ datasetLapisFilter } />
83- <ComponentsGrid >
84- <GsPrevalenceOverTime
85- numeratorFilters ={ [
86- {
87- displayName: ' ' ,
88- lapisFilter: variantLapisFilter ,
89- },
90- ]}
91- denominatorFilter ={ datasetLapisFilter }
92- lapisDateField ={ view .organismConstants .mainDateField }
93- granularity ={ timeGranularity }
94- pageSize ={ 10 }
95- />
96- <GsMutations
78+ <LoadingListener count ={ count } slot =' dataDisplay' >
79+ <div class =' mx-[8px] flex flex-col gap-y-6' >
80+ {
81+ noVariantSelected && (
82+ <SelectVariant >
83+ <QuickstartLinks view = { view } />
84+ </SelectVariant >
85+ )
86+ }
87+ <GsStatistics numeratorFilter ={ variantLapisFilter } denominatorFilter ={ datasetLapisFilter } />
88+ <ComponentsGrid >
89+ <GsPrevalenceOverTime
90+ numeratorFilters ={ [
91+ {
92+ displayName: ' ' ,
93+ lapisFilter: variantLapisFilter ,
94+ },
95+ ]}
96+ denominatorFilter ={ datasetLapisFilter }
97+ lapisDateField ={ view .organismConstants .mainDateField }
98+ granularity ={ timeGranularity }
99+ pageSize ={ 10 }
100+ />
101+ <GsMutations
102+ lapisFilter ={ variantLapisFilter }
103+ baselineLapisFilter ={ datasetLapisFilter }
104+ sequenceType =' nucleotide'
105+ pageSize ={ 10 }
106+ />
107+ <GsMutations
108+ lapisFilter ={ variantLapisFilter }
109+ baselineLapisFilter ={ datasetLapisFilter }
110+ sequenceType =' amino acid'
111+ pageSize ={ 10 }
112+ />
113+ {
114+ subdivisionField !== undefined && (
115+ <GsAggregate
116+ title = { subdivisionLabel }
117+ fields = { [subdivisionField ]}
118+ lapisFilter = { variantLapisFilter }
119+ views = { [views .table , views .bar ]}
120+ pageSize = { 10 }
121+ />
122+ )
123+ }
124+
125+ {
126+ view .organismConstants .aggregatedVisualizations .singleVariant .map (({ label , fields , views }) => (
127+ <GsAggregate
128+ title = { label }
129+ fields = { fields }
130+ lapisFilter = { variantLapisFilter }
131+ views = { views }
132+ pageSize = { 10 }
133+ />
134+ ))
135+ }
136+ </ComponentsGrid >
137+ <GsMutationsOverTime
97138 lapisFilter ={ variantLapisFilter }
98- baselineLapisFilter ={ datasetLapisFilter }
99139 sequenceType =' nucleotide'
100- pageSize ={ 10 }
140+ granularity ={ timeGranularity }
141+ lapisDateField ={ view .organismConstants .mainDateField }
101142 />
102- <GsMutations
143+ <GsMutationsOverTime
103144 lapisFilter ={ variantLapisFilter }
104- baselineLapisFilter ={ datasetLapisFilter }
105145 sequenceType =' amino acid'
106- pageSize ={ 10 }
146+ granularity ={ timeGranularity }
147+ lapisDateField ={ view .organismConstants .mainDateField }
107148 />
108- {
109- subdivisionField !== undefined && (
110- <GsAggregate
111- title = { subdivisionLabel }
112- fields = { [subdivisionField ]}
113- lapisFilter = { variantLapisFilter }
114- views = { [views .table , views .bar ]}
115- pageSize = { 10 }
116- />
117- )
118- }
119-
120- {
121- view .organismConstants .aggregatedVisualizations .singleVariant .map (({ label , fields , views }) => (
122- <GsAggregate
123- title = { label }
124- fields = { fields }
125- lapisFilter = { variantLapisFilter }
126- views = { views }
127- pageSize = { 10 }
128- />
129- ))
130- }
131- </ComponentsGrid >
132- <GsMutationsOverTime
133- lapisFilter ={ variantLapisFilter }
134- sequenceType =' nucleotide'
135- granularity ={ timeGranularity }
136- lapisDateField ={ view .organismConstants .mainDateField }
137- />
138- <GsMutationsOverTime
139- lapisFilter ={ variantLapisFilter }
140- sequenceType =' amino acid'
141- granularity ={ timeGranularity }
142- lapisDateField ={ view .organismConstants .mainDateField }
143- />
144- </div >
149+ </div >
150+ </LoadingListener >
145151</SingleVariantOrganismPageLayout >
0 commit comments