@internetarchive/collection-browser 0.4.18-alpha.6 → 0.4.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/collection-browser.d.ts +10 -9
- package/dist/src/collection-browser.js +331 -328
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facets-template.js +0 -2
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.js +70 -63
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.js +55 -49
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.js +56 -46
- package/dist/src/collection-facets/toggle-switch.js.map +1 -1
- package/dist/src/collection-facets.d.ts +1 -1
- package/dist/src/collection-facets.js +84 -94
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +1 -2
- package/dist/src/sort-filter-bar/alpha-bar.js +25 -33
- package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js +186 -198
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.js +1 -1
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js +2 -2
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +2 -2
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +15 -5
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js.map +1 -1
- package/dist/src/tiles/grid/tile-stats.js +65 -58
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +2 -3
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/test/collection-browser.test.js +2 -2
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets.test.js +5 -8
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +12 -12
- package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +2 -2
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/package.json +5 -5
- package/src/collection-browser.ts +339 -330
- package/src/collection-facets/facets-template.ts +0 -2
- package/src/collection-facets/more-facets-content.ts +70 -63
- package/src/collection-facets/more-facets-pagination.ts +55 -49
- package/src/collection-facets/toggle-switch.ts +61 -51
- package/src/collection-facets.ts +85 -96
- package/src/sort-filter-bar/alpha-bar.ts +18 -26
- package/src/sort-filter-bar/sort-filter-bar.ts +186 -200
- package/src/tiles/grid/account-tile.ts +1 -1
- package/src/tiles/grid/collection-tile.ts +2 -2
- package/src/tiles/grid/item-tile.ts +2 -2
- package/src/tiles/grid/styles/tile-grid-shared-styles.ts +15 -5
- package/src/tiles/grid/tile-stats.ts +73 -66
- package/src/tiles/tile-dispatcher.ts +0 -1
- package/test/collection-browser.test.ts +2 -2
- package/test/collection-facets.test.ts +2 -10
- package/test/sort-filter-bar/alpha-bar.test.ts +12 -16
- package/test/sort-filter-bar/sort-filter-bar.test.ts +2 -2
- package/dist/src/styles/sr-only.d.ts +0 -1
- package/dist/src/styles/sr-only.js +0 -18
- package/dist/src/styles/sr-only.js.map +0 -1
- package/src/styles/sr-only.ts +0 -18
|
@@ -70,7 +70,6 @@ import {
|
|
|
70
70
|
analyticsActions,
|
|
71
71
|
analyticsCategories,
|
|
72
72
|
} from './utils/analytics-events';
|
|
73
|
-
import { srOnlyStyle } from './styles/sr-only';
|
|
74
73
|
|
|
75
74
|
@customElement('collection-browser')
|
|
76
75
|
export class CollectionBrowser
|
|
@@ -378,9 +377,7 @@ export class CollectionBrowser
|
|
|
378
377
|
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
379
378
|
>
|
|
380
379
|
<div id="mobile-header-container">
|
|
381
|
-
${this.mobileView
|
|
382
|
-
? this.mobileFacetsTemplate
|
|
383
|
-
: html`<h2 id="facets-header" class="sr-only">Filters</h2>`}
|
|
380
|
+
${this.mobileView ? this.mobileFacetsTemplate : nothing}
|
|
384
381
|
<div id="results-total">
|
|
385
382
|
<span id="big-results-count">
|
|
386
383
|
${shouldShowSearching ? html`Searching…` : resultsCount}
|
|
@@ -390,12 +387,15 @@ export class CollectionBrowser
|
|
|
390
387
|
</span>
|
|
391
388
|
</div>
|
|
392
389
|
</div>
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
390
|
+
<div
|
|
391
|
+
id="facets-container"
|
|
392
|
+
class=${!this.mobileView || this.mobileFacetsVisible
|
|
393
|
+
? 'expanded'
|
|
394
|
+
: ''}
|
|
395
|
+
>
|
|
396
|
+
${this.facetsTemplate}
|
|
397
|
+
<div id="facets-scroll-sentinel"></div>
|
|
398
|
+
</div>
|
|
399
399
|
${this.mobileView ? nothing : html`<div id="facets-bottom-fade"></div>`}
|
|
400
400
|
</div>
|
|
401
401
|
<div id="right-column" class="column">
|
|
@@ -411,7 +411,6 @@ export class CollectionBrowser
|
|
|
411
411
|
return html`<infinite-scroller
|
|
412
412
|
class=${this.infiniteScrollerClasses}
|
|
413
413
|
itemCount=${this.placeholderType ? 0 : nothing}
|
|
414
|
-
ariaLandmarkLabel="Search results"
|
|
415
414
|
.cellProvider=${this}
|
|
416
415
|
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
417
416
|
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
@@ -582,34 +581,28 @@ export class CollectionBrowser
|
|
|
582
581
|
this.selectedCreatorFilter = e.detail.selectedLetter;
|
|
583
582
|
}
|
|
584
583
|
|
|
585
|
-
|
|
586
|
-
* The full template for how the facets should be structured in mobile view,
|
|
587
|
-
* including the collapsible container (with header) and the facets themselves.
|
|
588
|
-
*/
|
|
589
|
-
private get mobileFacetsTemplate(): TemplateResult {
|
|
590
|
-
const toggleFacetsVisible = () => {
|
|
591
|
-
this.isResizeToMobile = false;
|
|
592
|
-
this.mobileFacetsVisible = !this.mobileFacetsVisible;
|
|
593
|
-
};
|
|
594
|
-
|
|
584
|
+
private get mobileFacetsTemplate() {
|
|
595
585
|
return html`
|
|
596
|
-
<
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
586
|
+
<div id="mobile-filter-collapse">
|
|
587
|
+
<h1
|
|
588
|
+
@click=${() => {
|
|
589
|
+
this.isResizeToMobile = false;
|
|
590
|
+
this.mobileFacetsVisible = !this.mobileFacetsVisible;
|
|
591
|
+
}}
|
|
592
|
+
@keyup=${() => {
|
|
593
|
+
this.isResizeToMobile = false;
|
|
594
|
+
this.mobileFacetsVisible = !this.mobileFacetsVisible;
|
|
595
|
+
}}
|
|
596
|
+
>
|
|
597
|
+
<span class="collapser ${this.mobileFacetsVisible ? 'open' : ''}">
|
|
598
|
+
${chevronIcon}
|
|
599
|
+
</span>
|
|
600
|
+
Filters
|
|
601
|
+
</h1>
|
|
602
|
+
</div>
|
|
607
603
|
`;
|
|
608
604
|
}
|
|
609
605
|
|
|
610
|
-
/**
|
|
611
|
-
* The template for the facets component alone, without any surrounding wrappers.
|
|
612
|
-
*/
|
|
613
606
|
private get facetsTemplate() {
|
|
614
607
|
return html`
|
|
615
608
|
<collection-facets
|
|
@@ -984,12 +977,18 @@ export class CollectionBrowser
|
|
|
984
977
|
this.fullYearsHistogramAggregation = undefined;
|
|
985
978
|
this.pageFetchesInProgress = {};
|
|
986
979
|
this.endOfDataReached = false;
|
|
987
|
-
this.pagesToRender =
|
|
980
|
+
this.pagesToRender =
|
|
981
|
+
this.initialPageNumber === 1
|
|
982
|
+
? 2 // First two pages are batched into one request when starting from page 1
|
|
983
|
+
: this.initialPageNumber;
|
|
988
984
|
this.queryErrorMessage = undefined;
|
|
989
985
|
|
|
990
986
|
// Reset the infinite scroller's item count, so that it
|
|
991
987
|
// shows tile placeholders until the new query's results load in
|
|
992
|
-
this.infiniteScroller
|
|
988
|
+
if (this.infiniteScroller) {
|
|
989
|
+
this.infiniteScroller.itemCount = this.estimatedTileCount;
|
|
990
|
+
this.infiniteScroller.reload();
|
|
991
|
+
}
|
|
993
992
|
|
|
994
993
|
if (!this.initialQueryChangeHappened && this.initialPageNumber > 1) {
|
|
995
994
|
this.scrollToPage(this.initialPageNumber);
|
|
@@ -1061,7 +1060,8 @@ export class CollectionBrowser
|
|
|
1061
1060
|
|
|
1062
1061
|
private async doInitialPageFetch(): Promise<void> {
|
|
1063
1062
|
this.searchResultsLoading = true;
|
|
1064
|
-
|
|
1063
|
+
// Try to batch 2 initial page requests when possible
|
|
1064
|
+
await this.fetchPage(this.initialPageNumber, 2);
|
|
1065
1065
|
this.searchResultsLoading = false;
|
|
1066
1066
|
}
|
|
1067
1067
|
|
|
@@ -1393,7 +1393,15 @@ export class CollectionBrowser
|
|
|
1393
1393
|
// this maps the query to the pages being fetched for that query
|
|
1394
1394
|
private pageFetchesInProgress: Record<string, Set<number>> = {};
|
|
1395
1395
|
|
|
1396
|
-
|
|
1396
|
+
/**
|
|
1397
|
+
* Fetches one or more pages of results and updates the data source.
|
|
1398
|
+
*
|
|
1399
|
+
* @param pageNumber The page number to fetch
|
|
1400
|
+
* @param numInitialPages If this is an initial page fetch (`pageNumber = 1`),
|
|
1401
|
+
* specifies how many pages to batch together in one request. Ignored
|
|
1402
|
+
* if `pageNumber != 1`, defaulting to a single page.
|
|
1403
|
+
*/
|
|
1404
|
+
async fetchPage(pageNumber: number, numInitialPages = 1) {
|
|
1397
1405
|
const trimmedQuery = this.baseQuery?.trim();
|
|
1398
1406
|
if (!trimmedQuery) return;
|
|
1399
1407
|
if (!this.searchService) return;
|
|
@@ -1403,19 +1411,26 @@ export class CollectionBrowser
|
|
|
1403
1411
|
|
|
1404
1412
|
if (this.endOfDataReached) return;
|
|
1405
1413
|
|
|
1414
|
+
// Batch multiple initial page requests together if needed (e.g., can request
|
|
1415
|
+
// pages 1 and 2 together in a single request).
|
|
1416
|
+
const numPages = pageNumber === 1 ? numInitialPages : 1;
|
|
1417
|
+
const numRows = this.pageSize * numPages;
|
|
1418
|
+
|
|
1406
1419
|
// if a fetch is already in progress for this query and page, don't fetch again
|
|
1407
1420
|
const { pageFetchQueryKey } = this;
|
|
1408
1421
|
const pageFetches =
|
|
1409
1422
|
this.pageFetchesInProgress[pageFetchQueryKey] ?? new Set();
|
|
1410
1423
|
if (pageFetches.has(pageNumber)) return;
|
|
1411
|
-
|
|
1424
|
+
for (let i = 0; i < numPages; i += 1) {
|
|
1425
|
+
pageFetches.add(pageNumber + i);
|
|
1426
|
+
}
|
|
1412
1427
|
this.pageFetchesInProgress[pageFetchQueryKey] = pageFetches;
|
|
1413
1428
|
|
|
1414
1429
|
const sortParams = this.sortParam ? [this.sortParam] : [];
|
|
1415
1430
|
const params: SearchParams = {
|
|
1416
1431
|
query: trimmedQuery,
|
|
1417
1432
|
page: pageNumber,
|
|
1418
|
-
rows:
|
|
1433
|
+
rows: numRows,
|
|
1419
1434
|
sort: sortParams,
|
|
1420
1435
|
filters: this.filterMap,
|
|
1421
1436
|
aggregations: { omit: true },
|
|
@@ -1447,7 +1462,10 @@ export class CollectionBrowser
|
|
|
1447
1462
|
window?.Sentry?.captureMessage?.(this.queryErrorMessage, 'error');
|
|
1448
1463
|
}
|
|
1449
1464
|
|
|
1450
|
-
|
|
1465
|
+
for (let i = 0; i < numPages; i += 1) {
|
|
1466
|
+
this.pageFetchesInProgress[pageFetchQueryKey]?.delete(pageNumber + i);
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1451
1469
|
this.searchResultsLoading = false;
|
|
1452
1470
|
return;
|
|
1453
1471
|
}
|
|
@@ -1456,12 +1474,22 @@ export class CollectionBrowser
|
|
|
1456
1474
|
|
|
1457
1475
|
const { results, collectionTitles } = success.response;
|
|
1458
1476
|
if (results && results.length > 0) {
|
|
1477
|
+
// Load any collection titles present on the response into the cache,
|
|
1478
|
+
// or queue up preload fetches for them if none were present.
|
|
1459
1479
|
if (collectionTitles) {
|
|
1460
1480
|
this.collectionNameCache?.addKnownTitles(collectionTitles);
|
|
1461
1481
|
} else {
|
|
1462
1482
|
this.preloadCollectionNames(results);
|
|
1463
1483
|
}
|
|
1464
|
-
|
|
1484
|
+
|
|
1485
|
+
// Update the data source for each returned page
|
|
1486
|
+
for (let i = 0; i < numPages; i += 1) {
|
|
1487
|
+
const pageStartIndex = this.pageSize * i;
|
|
1488
|
+
this.updateDataSource(
|
|
1489
|
+
pageNumber + i,
|
|
1490
|
+
results.slice(pageStartIndex, pageStartIndex + this.pageSize)
|
|
1491
|
+
);
|
|
1492
|
+
}
|
|
1465
1493
|
}
|
|
1466
1494
|
|
|
1467
1495
|
// When we reach the end of the data, we can set the infinite scroller's
|
|
@@ -1474,7 +1502,9 @@ export class CollectionBrowser
|
|
|
1474
1502
|
}
|
|
1475
1503
|
}
|
|
1476
1504
|
|
|
1477
|
-
|
|
1505
|
+
for (let i = 0; i < numPages; i += 1) {
|
|
1506
|
+
this.pageFetchesInProgress[pageFetchQueryKey]?.delete(pageNumber + i);
|
|
1507
|
+
}
|
|
1478
1508
|
}
|
|
1479
1509
|
|
|
1480
1510
|
private preloadCollectionNames(results: SearchResult[]) {
|
|
@@ -1703,327 +1733,306 @@ export class CollectionBrowser
|
|
|
1703
1733
|
}
|
|
1704
1734
|
}
|
|
1705
1735
|
|
|
1706
|
-
static
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
css`
|
|
1710
|
-
:host {
|
|
1711
|
-
display: block;
|
|
1712
|
-
|
|
1713
|
-
--leftColumnWidth: 18rem;
|
|
1714
|
-
--leftColumnPaddingRight: 2.5rem;
|
|
1715
|
-
}
|
|
1736
|
+
static styles = css`
|
|
1737
|
+
:host {
|
|
1738
|
+
display: block;
|
|
1716
1739
|
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
*/
|
|
1721
|
-
.preload * {
|
|
1722
|
-
transition: none !important;
|
|
1723
|
-
-webkit-transition: none !important;
|
|
1724
|
-
-moz-transition: none !important;
|
|
1725
|
-
-ms-transition: none !important;
|
|
1726
|
-
-o-transition: none !important;
|
|
1727
|
-
}
|
|
1728
|
-
|
|
1729
|
-
#content-container {
|
|
1730
|
-
display: flex;
|
|
1731
|
-
}
|
|
1740
|
+
--leftColumnWidth: 18rem;
|
|
1741
|
+
--leftColumnPaddingRight: 2.5rem;
|
|
1742
|
+
}
|
|
1732
1743
|
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1744
|
+
/**
|
|
1745
|
+
* When page width resizes from desktop to mobile, use this class to
|
|
1746
|
+
* disable expand/collapse transition when loading.
|
|
1747
|
+
*/
|
|
1748
|
+
.preload * {
|
|
1749
|
+
transition: none !important;
|
|
1750
|
+
-webkit-transition: none !important;
|
|
1751
|
+
-moz-transition: none !important;
|
|
1752
|
+
-ms-transition: none !important;
|
|
1753
|
+
-o-transition: none !important;
|
|
1754
|
+
}
|
|
1736
1755
|
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
height: 12px;
|
|
1741
|
-
transition: transform 0.2s ease-out;
|
|
1742
|
-
}
|
|
1756
|
+
#content-container {
|
|
1757
|
+
display: flex;
|
|
1758
|
+
}
|
|
1743
1759
|
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
}
|
|
1760
|
+
.collapser {
|
|
1761
|
+
display: inline-block;
|
|
1762
|
+
}
|
|
1748
1763
|
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1764
|
+
.collapser svg {
|
|
1765
|
+
width: 10px;
|
|
1766
|
+
height: 10px;
|
|
1767
|
+
transition: transform 0.2s ease-out;
|
|
1768
|
+
}
|
|
1752
1769
|
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
font-size: 2rem;
|
|
1757
|
-
}
|
|
1770
|
+
.collapser.open svg {
|
|
1771
|
+
transform: rotate(90deg);
|
|
1772
|
+
}
|
|
1758
1773
|
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1774
|
+
#mobile-filter-collapse h1 {
|
|
1775
|
+
cursor: pointer;
|
|
1776
|
+
}
|
|
1762
1777
|
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1778
|
+
#content-container.mobile {
|
|
1779
|
+
display: block;
|
|
1780
|
+
}
|
|
1766
1781
|
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1782
|
+
.column {
|
|
1783
|
+
padding-top: 2rem;
|
|
1784
|
+
}
|
|
1770
1785
|
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1786
|
+
#right-column {
|
|
1787
|
+
flex: 1;
|
|
1788
|
+
position: relative;
|
|
1789
|
+
border-left: 1px solid rgb(232, 232, 232);
|
|
1790
|
+
border-right: 1px solid rgb(232, 232, 232);
|
|
1791
|
+
padding-left: 1rem;
|
|
1792
|
+
padding-right: 1rem;
|
|
1793
|
+
background: #fff;
|
|
1794
|
+
}
|
|
1780
1795
|
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1796
|
+
.mobile #right-column {
|
|
1797
|
+
border-left: none;
|
|
1798
|
+
padding: 5px 5px 0;
|
|
1799
|
+
}
|
|
1785
1800
|
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1801
|
+
#left-column {
|
|
1802
|
+
width: var(--leftColumnWidth, 18rem);
|
|
1803
|
+
/* Prevents Safari from shrinking col at first draw */
|
|
1804
|
+
min-width: var(--leftColumnWidth, 18rem);
|
|
1805
|
+
padding-top: 0;
|
|
1806
|
+
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
1807
|
+
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
1808
|
+
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
1809
|
+
z-index: 1;
|
|
1810
|
+
}
|
|
1796
1811
|
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1812
|
+
.desktop #left-column {
|
|
1813
|
+
top: 0;
|
|
1814
|
+
position: sticky;
|
|
1815
|
+
height: calc(100vh - 2rem);
|
|
1816
|
+
max-height: calc(100vh - 2rem);
|
|
1817
|
+
overflow-x: hidden;
|
|
1818
|
+
overflow-y: scroll;
|
|
1819
|
+
|
|
1820
|
+
/*
|
|
1821
|
+
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
1822
|
+
* does at least give us a tiny bit of control over width & color.
|
|
1823
|
+
*/
|
|
1824
|
+
scrollbar-width: thin;
|
|
1825
|
+
scrollbar-color: transparent transparent;
|
|
1826
|
+
}
|
|
1827
|
+
.desktop #left-column:hover {
|
|
1828
|
+
scrollbar-color: auto;
|
|
1829
|
+
}
|
|
1830
|
+
.desktop #left-column::-webkit-scrollbar {
|
|
1831
|
+
appearance: none;
|
|
1832
|
+
width: 6px;
|
|
1833
|
+
}
|
|
1834
|
+
.desktop #left-column::-webkit-scrollbar-button {
|
|
1835
|
+
height: 3px;
|
|
1836
|
+
background: transparent;
|
|
1837
|
+
}
|
|
1838
|
+
.desktop #left-column::-webkit-scrollbar-corner {
|
|
1839
|
+
background: transparent;
|
|
1840
|
+
}
|
|
1841
|
+
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
1842
|
+
border-radius: 4px;
|
|
1843
|
+
}
|
|
1844
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
1845
|
+
background: rgba(0, 0, 0, 0.15);
|
|
1846
|
+
}
|
|
1847
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
1848
|
+
background: rgba(0, 0, 0, 0.2);
|
|
1849
|
+
}
|
|
1850
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
1851
|
+
background: rgba(0, 0, 0, 0.3);
|
|
1852
|
+
}
|
|
1838
1853
|
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1854
|
+
#facets-bottom-fade {
|
|
1855
|
+
background: linear-gradient(
|
|
1856
|
+
to bottom,
|
|
1857
|
+
#f5f5f700 0%,
|
|
1858
|
+
#f5f5f7c0 50%,
|
|
1859
|
+
#f5f5f7 80%,
|
|
1860
|
+
#f5f5f7 100%
|
|
1861
|
+
);
|
|
1862
|
+
position: fixed;
|
|
1863
|
+
bottom: 0;
|
|
1864
|
+
height: 50px;
|
|
1865
|
+
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
1866
|
+
width: calc(
|
|
1867
|
+
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
1868
|
+
);
|
|
1869
|
+
z-index: 2;
|
|
1870
|
+
pointer-events: none;
|
|
1871
|
+
transition: height 0.1s ease;
|
|
1872
|
+
}
|
|
1873
|
+
#facets-bottom-fade.hidden {
|
|
1874
|
+
height: 0;
|
|
1875
|
+
}
|
|
1861
1876
|
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1877
|
+
.desktop #left-column-scroll-sentinel {
|
|
1878
|
+
width: 1px;
|
|
1879
|
+
height: 100vh;
|
|
1880
|
+
background: transparent;
|
|
1881
|
+
}
|
|
1867
1882
|
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1883
|
+
.desktop #facets-scroll-sentinel {
|
|
1884
|
+
width: 1px;
|
|
1885
|
+
height: 1px;
|
|
1886
|
+
background: transparent;
|
|
1887
|
+
}
|
|
1873
1888
|
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1889
|
+
.mobile #left-column {
|
|
1890
|
+
width: 100%;
|
|
1891
|
+
padding: 0;
|
|
1892
|
+
}
|
|
1878
1893
|
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
}
|
|
1894
|
+
#mobile-header-container {
|
|
1895
|
+
display: flex;
|
|
1896
|
+
justify-content: space-between;
|
|
1897
|
+
align-items: center;
|
|
1898
|
+
}
|
|
1885
1899
|
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1900
|
+
.desktop #mobile-header-container {
|
|
1901
|
+
padding-top: 2rem;
|
|
1902
|
+
}
|
|
1889
1903
|
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1904
|
+
#facets-container {
|
|
1905
|
+
position: relative;
|
|
1906
|
+
max-height: 0;
|
|
1907
|
+
transition: max-height 0.2s ease-in-out;
|
|
1908
|
+
z-index: 1;
|
|
1909
|
+
padding-bottom: 2rem;
|
|
1910
|
+
}
|
|
1897
1911
|
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1912
|
+
.mobile #facets-container {
|
|
1913
|
+
overflow: hidden;
|
|
1914
|
+
padding-bottom: 0;
|
|
1915
|
+
padding-left: 10px;
|
|
1916
|
+
padding-right: 10px;
|
|
1917
|
+
}
|
|
1904
1918
|
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1919
|
+
#facets-container.expanded {
|
|
1920
|
+
max-height: 2000px;
|
|
1921
|
+
}
|
|
1908
1922
|
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1923
|
+
#results-total {
|
|
1924
|
+
display: flex;
|
|
1925
|
+
align-items: baseline;
|
|
1926
|
+
margin-bottom: 5rem;
|
|
1927
|
+
}
|
|
1914
1928
|
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
|
|
1929
|
+
.mobile #results-total {
|
|
1930
|
+
margin-bottom: 0;
|
|
1931
|
+
}
|
|
1918
1932
|
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1933
|
+
#big-results-count {
|
|
1934
|
+
font-size: 2.4rem;
|
|
1935
|
+
font-weight: 500;
|
|
1936
|
+
margin-right: 5px;
|
|
1937
|
+
}
|
|
1924
1938
|
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1939
|
+
#big-results-label {
|
|
1940
|
+
font-size: 1.4rem;
|
|
1941
|
+
font-weight: 200;
|
|
1942
|
+
}
|
|
1929
1943
|
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1944
|
+
#list-header {
|
|
1945
|
+
max-height: 4.2rem;
|
|
1946
|
+
}
|
|
1933
1947
|
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1948
|
+
.loading-cover {
|
|
1949
|
+
position: absolute;
|
|
1950
|
+
top: 0;
|
|
1951
|
+
left: 0;
|
|
1952
|
+
width: 100%;
|
|
1953
|
+
height: 100%;
|
|
1954
|
+
display: flex;
|
|
1955
|
+
justify-content: center;
|
|
1956
|
+
z-index: 1;
|
|
1957
|
+
padding-top: 50px;
|
|
1958
|
+
}
|
|
1945
1959
|
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1960
|
+
circular-activity-indicator {
|
|
1961
|
+
width: 30px;
|
|
1962
|
+
height: 30px;
|
|
1963
|
+
}
|
|
1950
1964
|
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1965
|
+
sort-filter-bar {
|
|
1966
|
+
display: block;
|
|
1967
|
+
margin-bottom: 4rem;
|
|
1968
|
+
}
|
|
1955
1969
|
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1970
|
+
infinite-scroller {
|
|
1971
|
+
display: block;
|
|
1972
|
+
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
1973
|
+
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
1974
|
+
}
|
|
1961
1975
|
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1976
|
+
infinite-scroller.list-compact {
|
|
1977
|
+
--infiniteScrollerCellMinWidth: var(
|
|
1978
|
+
--collectionBrowserCellMinWidth,
|
|
1979
|
+
100%
|
|
1980
|
+
);
|
|
1981
|
+
--infiniteScrollerCellMinHeight: 34px; /* override infinite scroller component */
|
|
1982
|
+
--infiniteScrollerCellMaxHeight: 56px;
|
|
1983
|
+
--infiniteScrollerRowGap: 0px;
|
|
1984
|
+
}
|
|
1971
1985
|
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1986
|
+
infinite-scroller.list-detail {
|
|
1987
|
+
--infiniteScrollerCellMinWidth: var(
|
|
1988
|
+
--collectionBrowserCellMinWidth,
|
|
1989
|
+
100%
|
|
1990
|
+
);
|
|
1991
|
+
--infiniteScrollerCellMinHeight: var(
|
|
1992
|
+
--collectionBrowserCellMinHeight,
|
|
1993
|
+
5rem
|
|
1994
|
+
);
|
|
1995
|
+
/*
|
|
1996
|
+
30px in spec, compensating for a -4px margin
|
|
1997
|
+
to align title with top of item image
|
|
1998
|
+
src/tiles/list/tile-list.ts
|
|
1999
|
+
*/
|
|
2000
|
+
--infiniteScrollerRowGap: 34px;
|
|
2001
|
+
}
|
|
1988
2002
|
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
2003
|
+
.mobile infinite-scroller.list-detail {
|
|
2004
|
+
--infiniteScrollerRowGap: 24px;
|
|
2005
|
+
}
|
|
1992
2006
|
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
1fr
|
|
2001
|
-
);
|
|
2002
|
-
}
|
|
2007
|
+
infinite-scroller.grid {
|
|
2008
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2009
|
+
--collectionBrowserCellMinWidth,
|
|
2010
|
+
17rem
|
|
2011
|
+
);
|
|
2012
|
+
--infiniteScrollerCellMaxWidth: var(--collectionBrowserCellMaxWidth, 1fr);
|
|
2013
|
+
}
|
|
2003
2014
|
|
|
2004
|
-
|
|
2005
|
-
|
|
2006
|
-
|
|
2007
|
-
|
|
2008
|
-
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2015
|
+
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2016
|
+
@media screen and (max-width: 880px) {
|
|
2017
|
+
infinite-scroller.grid {
|
|
2018
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2019
|
+
--collectionBrowserCellMinWidth,
|
|
2020
|
+
15rem
|
|
2021
|
+
);
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2024
|
+
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2025
|
+
@media screen and (max-width: 360px) {
|
|
2026
|
+
infinite-scroller.grid {
|
|
2027
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2028
|
+
--collectionBrowserCellMinWidth,
|
|
2029
|
+
12rem
|
|
2030
|
+
);
|
|
2031
|
+
}
|
|
2032
|
+
}
|
|
2022
2033
|
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
];
|
|
2028
|
-
}
|
|
2034
|
+
infinite-scroller.hidden {
|
|
2035
|
+
display: none;
|
|
2036
|
+
}
|
|
2037
|
+
`;
|
|
2029
2038
|
}
|