@internetarchive/collection-browser 4.0.2 → 4.1.0-alpha-webdev8186.0
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/index.js.map +1 -1
- package/dist/src/app-root.js +614 -614
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.js +764 -774
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.js +121 -121
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
- package/dist/src/models.js.map +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +13 -172
- package/dist/src/sort-filter-bar/sort-filter-bar.js +37 -546
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js +89 -89
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +138 -138
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.js +28 -28
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/models.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +216 -216
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/test/collection-browser.test.js +197 -202
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +86 -401
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/index.ts +28 -28
- package/package.json +1 -1
- package/src/app-root.ts +1166 -1166
- package/src/collection-browser.ts +3065 -3075
- package/src/collection-facets/more-facets-content.ts +644 -644
- package/src/data-source/collection-browser-query-state.ts +59 -59
- package/src/models.ts +873 -873
- package/src/sort-filter-bar/sort-filter-bar.ts +42 -603
- package/src/tiles/grid/collection-tile.ts +184 -184
- package/src/tiles/grid/item-tile.ts +346 -346
- package/src/tiles/hover/hover-pane-controller.ts +627 -627
- package/src/tiles/models.ts +8 -8
- package/src/tiles/tile-dispatcher.ts +518 -518
- package/test/collection-browser.test.ts +2402 -2413
- package/test/sort-filter-bar/sort-filter-bar.test.ts +110 -566
|
@@ -379,32 +379,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
381
|
render() {
|
|
382
|
-
return html `
|
|
382
|
+
return html `
|
|
383
383
|
${this.showSmartFacetBar && this.placeholderType === null
|
|
384
|
-
? html `<smart-facet-bar
|
|
385
|
-
.query=${this.baseQuery}
|
|
386
|
-
.aggregations=${this.dataSource.aggregations}
|
|
387
|
-
.selectedFacets=${this.selectedFacets}
|
|
388
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
389
|
-
.filterToggleShown=${!this.mobileView}
|
|
390
|
-
.filterToggleActive=${this.facetPaneVisible}
|
|
391
|
-
.label=${this.smartFacetBarLabel}
|
|
392
|
-
@facetsChanged=${this.facetsChanged}
|
|
384
|
+
? html `<smart-facet-bar
|
|
385
|
+
.query=${this.baseQuery}
|
|
386
|
+
.aggregations=${this.dataSource.aggregations}
|
|
387
|
+
.selectedFacets=${this.selectedFacets}
|
|
388
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
389
|
+
.filterToggleShown=${!this.mobileView}
|
|
390
|
+
.filterToggleActive=${this.facetPaneVisible}
|
|
391
|
+
.label=${this.smartFacetBarLabel}
|
|
392
|
+
@facetsChanged=${this.facetsChanged}
|
|
393
393
|
@filtersToggled=${() => {
|
|
394
394
|
this.facetPaneVisible = !this.facetPaneVisible;
|
|
395
395
|
this.emitFacetPaneVisibilityChanged();
|
|
396
|
-
}}
|
|
396
|
+
}}
|
|
397
397
|
></smart-facet-bar>`
|
|
398
|
-
: nothing}
|
|
399
|
-
|
|
400
|
-
<div
|
|
401
|
-
id="content-container"
|
|
402
|
-
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
403
|
-
>
|
|
398
|
+
: nothing}
|
|
399
|
+
|
|
400
|
+
<div
|
|
401
|
+
id="content-container"
|
|
402
|
+
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
403
|
+
>
|
|
404
404
|
${this.placeholderType
|
|
405
405
|
? this.emptyPlaceholderTemplate
|
|
406
|
-
: this.collectionBrowserTemplate}
|
|
407
|
-
</div>
|
|
406
|
+
: this.collectionBrowserTemplate}
|
|
407
|
+
</div>
|
|
408
408
|
`;
|
|
409
409
|
}
|
|
410
410
|
/**
|
|
@@ -448,23 +448,23 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
448
448
|
* Template for the placeholder content to show when no results are available.
|
|
449
449
|
*/
|
|
450
450
|
get emptyPlaceholderTemplate() {
|
|
451
|
-
return html `
|
|
452
|
-
<empty-placeholder
|
|
453
|
-
.placeholderType=${this.placeholderType}
|
|
454
|
-
?isMobileView=${this.mobileView}
|
|
455
|
-
?isCollection=${!!this.withinCollection}
|
|
456
|
-
.detailMessage=${this.dataSource.queryErrorMessage ?? ''}
|
|
457
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
458
|
-
></empty-placeholder>
|
|
451
|
+
return html `
|
|
452
|
+
<empty-placeholder
|
|
453
|
+
.placeholderType=${this.placeholderType}
|
|
454
|
+
?isMobileView=${this.mobileView}
|
|
455
|
+
?isCollection=${!!this.withinCollection}
|
|
456
|
+
.detailMessage=${this.dataSource.queryErrorMessage ?? ''}
|
|
457
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
458
|
+
></empty-placeholder>
|
|
459
459
|
`;
|
|
460
460
|
}
|
|
461
461
|
/**
|
|
462
462
|
* Top-level template for rendering the left (facets) and right (results) columns.
|
|
463
463
|
*/
|
|
464
464
|
get collectionBrowserTemplate() {
|
|
465
|
-
return html `
|
|
466
|
-
<div id="left-column-scroll-sentinel"></div>
|
|
467
|
-
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
465
|
+
return html `
|
|
466
|
+
<div id="left-column-scroll-sentinel"></div>
|
|
467
|
+
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
468
468
|
`;
|
|
469
469
|
}
|
|
470
470
|
/**
|
|
@@ -483,33 +483,33 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
483
483
|
* accordion-style facets.
|
|
484
484
|
*/
|
|
485
485
|
get mobileLeftColumnTemplate() {
|
|
486
|
-
return html `
|
|
487
|
-
<div
|
|
488
|
-
id="left-column"
|
|
489
|
-
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
490
|
-
>
|
|
491
|
-
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
492
|
-
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
493
|
-
</div>
|
|
486
|
+
return html `
|
|
487
|
+
<div
|
|
488
|
+
id="left-column"
|
|
489
|
+
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
490
|
+
>
|
|
491
|
+
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
492
|
+
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
493
|
+
</div>
|
|
494
494
|
`;
|
|
495
495
|
}
|
|
496
496
|
/**
|
|
497
497
|
* Template for the desktop version of the left column, displaying the facets sidebar.
|
|
498
498
|
*/
|
|
499
499
|
get desktopLeftColumnTemplate() {
|
|
500
|
-
return html `
|
|
501
|
-
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
502
|
-
${this.facetTopViewSlot}
|
|
503
|
-
<div id="facets-header-container">
|
|
504
|
-
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
505
|
-
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
506
|
-
</div>
|
|
507
|
-
<div id="facets-container" aria-labelledby="facets-header">
|
|
508
|
-
${this.facetsTemplate}
|
|
509
|
-
<div id="facets-scroll-sentinel"></div>
|
|
510
|
-
</div>
|
|
511
|
-
<div id="facets-bottom-fade"></div>
|
|
512
|
-
</div>
|
|
500
|
+
return html `
|
|
501
|
+
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
502
|
+
${this.facetTopViewSlot}
|
|
503
|
+
<div id="facets-header-container">
|
|
504
|
+
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
505
|
+
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
506
|
+
</div>
|
|
507
|
+
<div id="facets-container" aria-labelledby="facets-header">
|
|
508
|
+
${this.facetsTemplate}
|
|
509
|
+
<div id="facets-scroll-sentinel"></div>
|
|
510
|
+
</div>
|
|
511
|
+
<div id="facets-bottom-fade"></div>
|
|
512
|
+
</div>
|
|
513
513
|
`;
|
|
514
514
|
}
|
|
515
515
|
/**
|
|
@@ -517,8 +517,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
517
517
|
* - mainly used to render userlists
|
|
518
518
|
*/
|
|
519
519
|
get facetTopViewSlot() {
|
|
520
|
-
return html `<div id="facet-top-view">
|
|
521
|
-
<slot name="facet-top-slot"></slot>
|
|
520
|
+
return html `<div id="facet-top-view">
|
|
521
|
+
<slot name="facet-top-slot"></slot>
|
|
522
522
|
</div>`;
|
|
523
523
|
}
|
|
524
524
|
/**
|
|
@@ -533,15 +533,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
533
533
|
const resultsCount = this.totalResults?.toLocaleString();
|
|
534
534
|
const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
|
|
535
535
|
// Added data-testid for Playwright testing
|
|
536
|
-
return html `
|
|
537
|
-
<div id="results-total" class=${classes} data-testid="results-total">
|
|
538
|
-
<span id="big-results-count">
|
|
539
|
-
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
540
|
-
</span>
|
|
541
|
-
<span id="big-results-label">
|
|
542
|
-
${shouldShowSearching ? nothing : resultsLabel}
|
|
543
|
-
</span>
|
|
544
|
-
</div>
|
|
536
|
+
return html `
|
|
537
|
+
<div id="results-total" class=${classes} data-testid="results-total">
|
|
538
|
+
<span id="big-results-count">
|
|
539
|
+
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
540
|
+
</span>
|
|
541
|
+
<span id="big-results-label">
|
|
542
|
+
${shouldShowSearching ? nothing : resultsLabel}
|
|
543
|
+
</span>
|
|
544
|
+
</div>
|
|
545
545
|
`;
|
|
546
546
|
}
|
|
547
547
|
/**
|
|
@@ -554,45 +554,45 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
554
554
|
'full-width': !this.facetPaneVisible,
|
|
555
555
|
'smart-results-spacing': !!this.showSmartResults,
|
|
556
556
|
});
|
|
557
|
-
return html `
|
|
558
|
-
<div id="right-column" class=${rightColumnClasses}>
|
|
557
|
+
return html `
|
|
558
|
+
<div id="right-column" class=${rightColumnClasses}>
|
|
559
559
|
${this.showSmartResults
|
|
560
560
|
? html `<slot name="smart-results"></slot>`
|
|
561
|
-
: nothing}
|
|
562
|
-
<section id="results">
|
|
563
|
-
<h2 class="results-section-heading">
|
|
564
|
-
<slot name="results-heading"></slot>
|
|
565
|
-
</h2>
|
|
566
|
-
<div id="cb-top-view">
|
|
567
|
-
<slot name="cb-top-slot"></slot>
|
|
568
|
-
</div>
|
|
561
|
+
: nothing}
|
|
562
|
+
<section id="results">
|
|
563
|
+
<h2 class="results-section-heading">
|
|
564
|
+
<slot name="results-heading"></slot>
|
|
565
|
+
</h2>
|
|
566
|
+
<div id="cb-top-view">
|
|
567
|
+
<slot name="cb-top-slot"></slot>
|
|
568
|
+
</div>
|
|
569
569
|
${this.isManageView
|
|
570
570
|
? this.manageBarTemplate
|
|
571
|
-
: this.sortFilterBarTemplate}
|
|
572
|
-
<slot name="cb-results"></slot>
|
|
571
|
+
: this.sortFilterBarTemplate}
|
|
572
|
+
<slot name="cb-results"></slot>
|
|
573
573
|
${this.displayMode === `list-compact` && this.totalResults
|
|
574
574
|
? this.listHeaderTemplate
|
|
575
|
-
: nothing}
|
|
576
|
-
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
577
|
-
</section>
|
|
578
|
-
</div>
|
|
575
|
+
: nothing}
|
|
576
|
+
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
577
|
+
</section>
|
|
578
|
+
</div>
|
|
579
579
|
`;
|
|
580
580
|
}
|
|
581
581
|
/**
|
|
582
582
|
* Template for the infinite scroller widget that contains the result tiles.
|
|
583
583
|
*/
|
|
584
584
|
get infiniteScrollerTemplate() {
|
|
585
|
-
return html `<infinite-scroller
|
|
586
|
-
class=${this.infiniteScrollerClasses}
|
|
587
|
-
itemCount=${this.placeholderType ? 0 : nothing}
|
|
588
|
-
ariaLandmarkLabel="Search results"
|
|
589
|
-
.cellProvider=${this}
|
|
590
|
-
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
591
|
-
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
592
|
-
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
585
|
+
return html `<infinite-scroller
|
|
586
|
+
class=${this.infiniteScrollerClasses}
|
|
587
|
+
itemCount=${this.placeholderType ? 0 : nothing}
|
|
588
|
+
ariaLandmarkLabel="Search results"
|
|
589
|
+
.cellProvider=${this}
|
|
590
|
+
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
591
|
+
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
592
|
+
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
593
593
|
>${this.displayMode === 'grid'
|
|
594
594
|
? html `<slot name="result-last-tile" slot="result-last-tile"></slot>`
|
|
595
|
-
: nothing}
|
|
595
|
+
: nothing}
|
|
596
596
|
</infinite-scroller>`;
|
|
597
597
|
}
|
|
598
598
|
/**
|
|
@@ -612,51 +612,41 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
612
612
|
if (this.suppressSortBar)
|
|
613
613
|
return nothing;
|
|
614
614
|
// Determine the set of sortable fields that should be shown in the sort bar
|
|
615
|
-
let defaultViewSort = SortField.weeklyview;
|
|
616
|
-
let defaultDateSort = SortField.date;
|
|
617
615
|
let sortFieldAvailability = defaultSortAvailability;
|
|
618
|
-
// We adjust the sort options for a couple of special cases...
|
|
616
|
+
// We adjust the available sort options for a couple of special cases...
|
|
619
617
|
if (this.withinCollection?.startsWith('fav-')) {
|
|
620
|
-
// When viewing a fav- collection, we include the Date Favorited option
|
|
621
|
-
// it as the default in the date dropdown.
|
|
622
|
-
defaultDateSort = SortField.datefavorited;
|
|
618
|
+
// When viewing a fav- collection, we include the Date Favorited option as the default
|
|
623
619
|
sortFieldAvailability = favoritesSortAvailability;
|
|
624
620
|
}
|
|
625
621
|
else if (!this.withinCollection && this.searchType === SearchType.TV) {
|
|
626
|
-
// When viewing TV search results, we
|
|
627
|
-
// and exclude several of the usual date sort options.
|
|
628
|
-
defaultViewSort = SortField.alltimeview;
|
|
629
|
-
defaultDateSort = SortField.datearchived;
|
|
622
|
+
// When viewing TV search results, we exclude several of the usual date sort options.
|
|
630
623
|
sortFieldAvailability = tvSortAvailability;
|
|
631
624
|
}
|
|
632
625
|
// We only show relevance sort if a search query is currently defined
|
|
633
626
|
sortFieldAvailability.relevance = this.isRelevanceSortAvailable;
|
|
634
|
-
return html `
|
|
635
|
-
<sort-filter-bar
|
|
636
|
-
.defaultSortField=${this.defaultSortField}
|
|
637
|
-
.defaultSortDirection=${this.defaultSortDirection}
|
|
638
|
-
.
|
|
639
|
-
.
|
|
640
|
-
.
|
|
641
|
-
.
|
|
642
|
-
.
|
|
643
|
-
.
|
|
644
|
-
.
|
|
645
|
-
.
|
|
646
|
-
.
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
@
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
<slot name="sort-options" slot="sort-options"></slot>
|
|
658
|
-
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
659
|
-
</sort-filter-bar>
|
|
627
|
+
return html `
|
|
628
|
+
<sort-filter-bar
|
|
629
|
+
.defaultSortField=${this.defaultSortField}
|
|
630
|
+
.defaultSortDirection=${this.defaultSortDirection}
|
|
631
|
+
.selectedSort=${this.selectedSort}
|
|
632
|
+
.sortDirection=${this.sortDirection}
|
|
633
|
+
.sortFieldAvailability=${sortFieldAvailability}
|
|
634
|
+
.displayMode=${this.displayMode}
|
|
635
|
+
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
636
|
+
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
637
|
+
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
638
|
+
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
639
|
+
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
640
|
+
@sortChanged=${this.userChangedSort}
|
|
641
|
+
@displayModeChanged=${this.displayModeChanged}
|
|
642
|
+
@titleLetterChanged=${this.titleLetterSelected}
|
|
643
|
+
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
644
|
+
>
|
|
645
|
+
${this.tileBlurCheckboxTemplate}
|
|
646
|
+
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
647
|
+
<slot name="sort-options" slot="sort-options"></slot>
|
|
648
|
+
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
649
|
+
</sort-filter-bar>
|
|
660
650
|
`;
|
|
661
651
|
}
|
|
662
652
|
/**
|
|
@@ -667,20 +657,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
667
657
|
// Only show the checkbox for @archive.org users
|
|
668
658
|
if (!this.dataSource.sessionContext?.is_archive_user)
|
|
669
659
|
return nothing;
|
|
670
|
-
return html `
|
|
671
|
-
<label
|
|
672
|
-
id="tile-blur-label"
|
|
673
|
-
for="tile-blur-check"
|
|
674
|
-
slot="sort-options-right"
|
|
675
|
-
>
|
|
676
|
-
${msg('Blurring')}
|
|
677
|
-
<input
|
|
678
|
-
id="tile-blur-check"
|
|
679
|
-
type="checkbox"
|
|
680
|
-
?checked=${!this.shouldSuppressTileBlurring}
|
|
681
|
-
@change=${this.tileBlurCheckboxChanged}
|
|
682
|
-
/>
|
|
683
|
-
</label>
|
|
660
|
+
return html `
|
|
661
|
+
<label
|
|
662
|
+
id="tile-blur-label"
|
|
663
|
+
for="tile-blur-check"
|
|
664
|
+
slot="sort-options-right"
|
|
665
|
+
>
|
|
666
|
+
${msg('Blurring')}
|
|
667
|
+
<input
|
|
668
|
+
id="tile-blur-check"
|
|
669
|
+
type="checkbox"
|
|
670
|
+
?checked=${!this.shouldSuppressTileBlurring}
|
|
671
|
+
@change=${this.tileBlurCheckboxChanged}
|
|
672
|
+
/>
|
|
673
|
+
</label>
|
|
684
674
|
`;
|
|
685
675
|
}
|
|
686
676
|
/**
|
|
@@ -706,27 +696,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
706
696
|
* showing the management view. This generally replaces the sort bar when present.
|
|
707
697
|
*/
|
|
708
698
|
get manageBarTemplate() {
|
|
709
|
-
return html `
|
|
710
|
-
<manage-bar
|
|
711
|
-
.label=${this.manageViewLabel}
|
|
712
|
-
.modalManager=${this.modalManager}
|
|
713
|
-
.selectedItems=${this.dataSource.checkedTileModels}
|
|
714
|
-
.manageViewModalMsg=${this.manageViewModalMsg}
|
|
715
|
-
showSelectAll
|
|
716
|
-
showUnselectAll
|
|
717
|
-
?showItemManageButton=${this.pageContext === 'search'}
|
|
718
|
-
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
719
|
-
@removeItems=${this.handleRemoveItems}
|
|
720
|
-
@manageItems=${this.handleManageItems}
|
|
721
|
-
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
722
|
-
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
699
|
+
return html `
|
|
700
|
+
<manage-bar
|
|
701
|
+
.label=${this.manageViewLabel}
|
|
702
|
+
.modalManager=${this.modalManager}
|
|
703
|
+
.selectedItems=${this.dataSource.checkedTileModels}
|
|
704
|
+
.manageViewModalMsg=${this.manageViewModalMsg}
|
|
705
|
+
showSelectAll
|
|
706
|
+
showUnselectAll
|
|
707
|
+
?showItemManageButton=${this.pageContext === 'search'}
|
|
708
|
+
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
709
|
+
@removeItems=${this.handleRemoveItems}
|
|
710
|
+
@manageItems=${this.handleManageItems}
|
|
711
|
+
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
712
|
+
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
723
713
|
@cancel=${() => {
|
|
724
714
|
this.isManageView = false;
|
|
725
715
|
this.dataSource.uncheckAllTiles();
|
|
726
716
|
if (this.searchResultsLoading)
|
|
727
717
|
this.dataSource.resetPages();
|
|
728
|
-
}}
|
|
729
|
-
></manage-bar>
|
|
718
|
+
}}
|
|
719
|
+
></manage-bar>
|
|
730
720
|
`;
|
|
731
721
|
}
|
|
732
722
|
/**
|
|
@@ -961,15 +951,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
961
951
|
label: target.open ? 'open' : 'closed',
|
|
962
952
|
});
|
|
963
953
|
};
|
|
964
|
-
return html `
|
|
965
|
-
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
966
|
-
<summary>
|
|
967
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
968
|
-
<h2>${msg('Filters')}</h2>
|
|
969
|
-
${this.clearFiltersBtnTemplate(true)}
|
|
970
|
-
</summary>
|
|
971
|
-
${this.facetsTemplate}
|
|
972
|
-
</details>
|
|
954
|
+
return html `
|
|
955
|
+
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
956
|
+
<summary>
|
|
957
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
958
|
+
<h2>${msg('Filters')}</h2>
|
|
959
|
+
${this.clearFiltersBtnTemplate(true)}
|
|
960
|
+
</summary>
|
|
961
|
+
${this.facetsTemplate}
|
|
962
|
+
</details>
|
|
973
963
|
`;
|
|
974
964
|
}
|
|
975
965
|
/**
|
|
@@ -1053,50 +1043,50 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1053
1043
|
const filterByNetworkLabel = msg('Filter by Network');
|
|
1054
1044
|
const filterByShowLabel = msg('Filter by Show');
|
|
1055
1045
|
const shows = showEntries.map(([show]) => show);
|
|
1056
|
-
const loadingIndicator = html `
|
|
1057
|
-
<span slot="empty-options">
|
|
1058
|
-
<img src="https://archive.org/images/loading.gif" />
|
|
1059
|
-
</span>
|
|
1046
|
+
const loadingIndicator = html `
|
|
1047
|
+
<span slot="empty-options">
|
|
1048
|
+
<img src="https://archive.org/images/loading.gif" />
|
|
1049
|
+
</span>
|
|
1060
1050
|
`;
|
|
1061
|
-
const errorMessage = html `
|
|
1062
|
-
<span slot="empty-options">
|
|
1063
|
-
${msg('Unable to fetch options, try again later')}
|
|
1064
|
-
</span>
|
|
1051
|
+
const errorMessage = html `
|
|
1052
|
+
<span slot="empty-options">
|
|
1053
|
+
${msg('Unable to fetch options, try again later')}
|
|
1054
|
+
</span>
|
|
1065
1055
|
`;
|
|
1066
|
-
return html `
|
|
1067
|
-
<div id="tv-filters" slot="facets-top">
|
|
1068
|
-
<ia-combo-box
|
|
1069
|
-
id="tv-networks"
|
|
1070
|
-
class="tv-filter-dropdown"
|
|
1071
|
-
placeholder=${filterByNetworkLabel}
|
|
1072
|
-
clearable
|
|
1073
|
-
wrap-arrow-keys
|
|
1074
|
-
sort
|
|
1075
|
-
.options=${networks.map((n, i) => ({ id: `network-${i}`, text: n }))}
|
|
1076
|
-
@toggle=${this.tvDropdownToggled}
|
|
1077
|
-
@change=${this.networksDropdownChanged}
|
|
1078
|
-
>
|
|
1079
|
-
<span slot="label" class="sr-only">${filterByNetworkLabel}</span>
|
|
1080
|
-
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1081
|
-
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1082
|
-
</ia-combo-box>
|
|
1083
|
-
<ia-combo-box
|
|
1084
|
-
id="tv-shows"
|
|
1085
|
-
class="tv-filter-dropdown"
|
|
1086
|
-
placeholder=${filterByShowLabel}
|
|
1087
|
-
max-autocomplete-entries="500"
|
|
1088
|
-
clearable
|
|
1089
|
-
wrap-arrow-keys
|
|
1090
|
-
sort
|
|
1091
|
-
.options=${shows.map((s, i) => ({ id: `show-${i}`, text: s }))}
|
|
1092
|
-
@toggle=${this.tvDropdownToggled}
|
|
1093
|
-
@change=${this.showsDropdownChanged}
|
|
1094
|
-
>
|
|
1095
|
-
<span slot="label" class="sr-only">${filterByShowLabel}</span>
|
|
1096
|
-
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1097
|
-
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1098
|
-
</ia-combo-box>
|
|
1099
|
-
</div>
|
|
1056
|
+
return html `
|
|
1057
|
+
<div id="tv-filters" slot="facets-top">
|
|
1058
|
+
<ia-combo-box
|
|
1059
|
+
id="tv-networks"
|
|
1060
|
+
class="tv-filter-dropdown"
|
|
1061
|
+
placeholder=${filterByNetworkLabel}
|
|
1062
|
+
clearable
|
|
1063
|
+
wrap-arrow-keys
|
|
1064
|
+
sort
|
|
1065
|
+
.options=${networks.map((n, i) => ({ id: `network-${i}`, text: n }))}
|
|
1066
|
+
@toggle=${this.tvDropdownToggled}
|
|
1067
|
+
@change=${this.networksDropdownChanged}
|
|
1068
|
+
>
|
|
1069
|
+
<span slot="label" class="sr-only">${filterByNetworkLabel}</span>
|
|
1070
|
+
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1071
|
+
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1072
|
+
</ia-combo-box>
|
|
1073
|
+
<ia-combo-box
|
|
1074
|
+
id="tv-shows"
|
|
1075
|
+
class="tv-filter-dropdown"
|
|
1076
|
+
placeholder=${filterByShowLabel}
|
|
1077
|
+
max-autocomplete-entries="500"
|
|
1078
|
+
clearable
|
|
1079
|
+
wrap-arrow-keys
|
|
1080
|
+
sort
|
|
1081
|
+
.options=${shows.map((s, i) => ({ id: `show-${i}`, text: s }))}
|
|
1082
|
+
@toggle=${this.tvDropdownToggled}
|
|
1083
|
+
@change=${this.showsDropdownChanged}
|
|
1084
|
+
>
|
|
1085
|
+
<span slot="label" class="sr-only">${filterByShowLabel}</span>
|
|
1086
|
+
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1087
|
+
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1088
|
+
</ia-combo-box>
|
|
1089
|
+
</div>
|
|
1100
1090
|
`;
|
|
1101
1091
|
}
|
|
1102
1092
|
/**
|
|
@@ -1106,10 +1096,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1106
1096
|
if (FACETLESS_PAGE_ELEMENTS.includes(this.profileElement))
|
|
1107
1097
|
return nothing;
|
|
1108
1098
|
if (this.facetLoadStrategy === 'off') {
|
|
1109
|
-
return html `
|
|
1110
|
-
<p class="facets-message">
|
|
1111
|
-
${msg('Facets are temporarily unavailable.')}
|
|
1112
|
-
</p>
|
|
1099
|
+
return html `
|
|
1100
|
+
<p class="facets-message">
|
|
1101
|
+
${msg('Facets are temporarily unavailable.')}
|
|
1102
|
+
</p>
|
|
1113
1103
|
`;
|
|
1114
1104
|
}
|
|
1115
1105
|
// We switch to TV facet ordering & date picker if we are in a TV collection or showing TV search results
|
|
@@ -1118,46 +1108,46 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1118
1108
|
const facetDisplayOrder = shouldUseTvInterface
|
|
1119
1109
|
? tvFacetDisplayOrder
|
|
1120
1110
|
: defaultFacetDisplayOrder;
|
|
1121
|
-
const facets = html `
|
|
1122
|
-
<collection-facets
|
|
1123
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1124
|
-
.parentCollections=${this.dataSource.parentCollections}
|
|
1125
|
-
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1126
|
-
.searchService=${this.searchService}
|
|
1127
|
-
.featureFeedbackService=${this.featureFeedbackService}
|
|
1128
|
-
.recaptchaManager=${this.recaptchaManager}
|
|
1129
|
-
.resizeObserver=${this.resizeObserver}
|
|
1130
|
-
.searchType=${this.searchType}
|
|
1131
|
-
.aggregations=${this.dataSource.aggregations}
|
|
1132
|
-
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1133
|
-
.minSelectedDate=${this.minSelectedDate}
|
|
1134
|
-
.maxSelectedDate=${this.maxSelectedDate}
|
|
1135
|
-
.selectedFacets=${this.selectedFacets}
|
|
1136
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1137
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1138
|
-
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1139
|
-
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1140
|
-
.allowExpandingDatePicker=${!this.mobileView}
|
|
1141
|
-
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1142
|
-
.contentWidth=${this.contentWidth}
|
|
1143
|
-
.query=${this.baseQuery}
|
|
1144
|
-
.identifiers=${this.identifiers}
|
|
1145
|
-
.filterMap=${this.dataSource.filterMap}
|
|
1146
|
-
.isManageView=${this.isManageView}
|
|
1147
|
-
.modalManager=${this.modalManager}
|
|
1148
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
1149
|
-
.facetDisplayOrder=${facetDisplayOrder}
|
|
1150
|
-
.isTvSearch=${shouldUseTvInterface}
|
|
1151
|
-
?collapsableFacets=${this.mobileView}
|
|
1152
|
-
?facetsLoading=${this.facetsLoading}
|
|
1153
|
-
?histogramAggregationLoading=${this.facetsLoading}
|
|
1154
|
-
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1155
|
-
@facetClick=${this.facetClickHandler}
|
|
1156
|
-
@facetsChanged=${this.facetsChanged}
|
|
1157
|
-
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1158
|
-
>
|
|
1159
|
-
${this.tvDropdownFiltersTemplate}
|
|
1160
|
-
</collection-facets>
|
|
1111
|
+
const facets = html `
|
|
1112
|
+
<collection-facets
|
|
1113
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1114
|
+
.parentCollections=${this.dataSource.parentCollections}
|
|
1115
|
+
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1116
|
+
.searchService=${this.searchService}
|
|
1117
|
+
.featureFeedbackService=${this.featureFeedbackService}
|
|
1118
|
+
.recaptchaManager=${this.recaptchaManager}
|
|
1119
|
+
.resizeObserver=${this.resizeObserver}
|
|
1120
|
+
.searchType=${this.searchType}
|
|
1121
|
+
.aggregations=${this.dataSource.aggregations}
|
|
1122
|
+
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1123
|
+
.minSelectedDate=${this.minSelectedDate}
|
|
1124
|
+
.maxSelectedDate=${this.maxSelectedDate}
|
|
1125
|
+
.selectedFacets=${this.selectedFacets}
|
|
1126
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1127
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1128
|
+
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1129
|
+
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1130
|
+
.allowExpandingDatePicker=${!this.mobileView}
|
|
1131
|
+
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1132
|
+
.contentWidth=${this.contentWidth}
|
|
1133
|
+
.query=${this.baseQuery}
|
|
1134
|
+
.identifiers=${this.identifiers}
|
|
1135
|
+
.filterMap=${this.dataSource.filterMap}
|
|
1136
|
+
.isManageView=${this.isManageView}
|
|
1137
|
+
.modalManager=${this.modalManager}
|
|
1138
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
1139
|
+
.facetDisplayOrder=${facetDisplayOrder}
|
|
1140
|
+
.isTvSearch=${shouldUseTvInterface}
|
|
1141
|
+
?collapsableFacets=${this.mobileView}
|
|
1142
|
+
?facetsLoading=${this.facetsLoading}
|
|
1143
|
+
?histogramAggregationLoading=${this.facetsLoading}
|
|
1144
|
+
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1145
|
+
@facetClick=${this.facetClickHandler}
|
|
1146
|
+
@facetsChanged=${this.facetsChanged}
|
|
1147
|
+
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1148
|
+
>
|
|
1149
|
+
${this.tvDropdownFiltersTemplate}
|
|
1150
|
+
</collection-facets>
|
|
1161
1151
|
`;
|
|
1162
1152
|
// If we are using one of the opt-in facet load strategies, we may need to wrap the
|
|
1163
1153
|
// desktop view facets in a <details> widget so that patrons can opt into loading them.
|
|
@@ -1165,20 +1155,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1165
1155
|
const showDesktopOptInWidget = this.facetLoadStrategy === 'opt-in' ||
|
|
1166
1156
|
(this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
|
|
1167
1157
|
if (showDesktopOptInWidget && !this.mobileView) {
|
|
1168
|
-
return html `
|
|
1169
|
-
<details
|
|
1170
|
-
class="desktop-facets-dropdown"
|
|
1158
|
+
return html `
|
|
1159
|
+
<details
|
|
1160
|
+
class="desktop-facets-dropdown"
|
|
1171
1161
|
@toggle=${(e) => {
|
|
1172
1162
|
const target = e.target;
|
|
1173
1163
|
this.collapsibleFacetsVisible = target.open;
|
|
1174
|
-
}}
|
|
1175
|
-
>
|
|
1176
|
-
<summary>
|
|
1177
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
1178
|
-
<h2>${msg('Filters')}</h2>
|
|
1179
|
-
</summary>
|
|
1180
|
-
${facets}
|
|
1181
|
-
</details>
|
|
1164
|
+
}}
|
|
1165
|
+
>
|
|
1166
|
+
<summary>
|
|
1167
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
1168
|
+
<h2>${msg('Filters')}</h2>
|
|
1169
|
+
</summary>
|
|
1170
|
+
${facets}
|
|
1171
|
+
</details>
|
|
1182
1172
|
`;
|
|
1183
1173
|
}
|
|
1184
1174
|
// Otherwise, just render the facets component bare
|
|
@@ -1198,34 +1188,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1198
1188
|
mobile,
|
|
1199
1189
|
});
|
|
1200
1190
|
const buttonText = mobile ? 'Clear all' : 'Clear all filters';
|
|
1201
|
-
return html `
|
|
1202
|
-
<div class="clear-filters-btn-row">
|
|
1191
|
+
return html `
|
|
1192
|
+
<div class="clear-filters-btn-row">
|
|
1203
1193
|
${mobile
|
|
1204
1194
|
? html `<span class="clear-filters-btn-separator"> </span>`
|
|
1205
|
-
: nothing}
|
|
1206
|
-
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1207
|
-
${buttonText}
|
|
1208
|
-
</button>
|
|
1209
|
-
</div>
|
|
1195
|
+
: nothing}
|
|
1196
|
+
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1197
|
+
${buttonText}
|
|
1198
|
+
</button>
|
|
1199
|
+
</div>
|
|
1210
1200
|
`;
|
|
1211
1201
|
}
|
|
1212
1202
|
/**
|
|
1213
1203
|
* Template for the table header content that appears atop the compact list view.
|
|
1214
1204
|
*/
|
|
1215
1205
|
get listHeaderTemplate() {
|
|
1216
|
-
return html `
|
|
1217
|
-
<div id="list-header">
|
|
1218
|
-
<tile-dispatcher
|
|
1219
|
-
.tileDisplayMode=${'list-header'}
|
|
1220
|
-
.resizeObserver=${this.resizeObserver}
|
|
1221
|
-
.sortParam=${this.sortParam}
|
|
1222
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1223
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1224
|
-
.loggedIn=${this.loggedIn}
|
|
1225
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1226
|
-
>
|
|
1227
|
-
</tile-dispatcher>
|
|
1228
|
-
</div>
|
|
1206
|
+
return html `
|
|
1207
|
+
<div id="list-header">
|
|
1208
|
+
<tile-dispatcher
|
|
1209
|
+
.tileDisplayMode=${'list-header'}
|
|
1210
|
+
.resizeObserver=${this.resizeObserver}
|
|
1211
|
+
.sortParam=${this.sortParam}
|
|
1212
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1213
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1214
|
+
.loggedIn=${this.loggedIn}
|
|
1215
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1216
|
+
>
|
|
1217
|
+
</tile-dispatcher>
|
|
1218
|
+
</div>
|
|
1229
1219
|
`;
|
|
1230
1220
|
}
|
|
1231
1221
|
/**
|
|
@@ -1975,28 +1965,28 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1975
1965
|
const isRadioSearch = this.searchType === SearchType.RADIO;
|
|
1976
1966
|
const { isTVCollection, isRadioCollection } = this;
|
|
1977
1967
|
const shouldUseLocalTime = isTVSearch || isRadioSearch || isTVCollection || isRadioCollection;
|
|
1978
|
-
return html `
|
|
1979
|
-
<tile-dispatcher
|
|
1980
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1981
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1982
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
1983
|
-
.model=${model}
|
|
1984
|
-
.tileDisplayMode=${this.displayMode}
|
|
1985
|
-
.resizeObserver=${this.resizeObserver}
|
|
1986
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1987
|
-
.sortParam=${this.sortParam}
|
|
1988
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1989
|
-
.creatorFilter=${this.selectedCreatorFilter}
|
|
1990
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1991
|
-
.loggedIn=${this.loggedIn}
|
|
1992
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1993
|
-
.isManageView=${this.isManageView}
|
|
1994
|
-
?showTvClips=${isTVSearch || isTVCollection}
|
|
1995
|
-
?enableHoverPane=${true}
|
|
1996
|
-
?useLocalTime=${shouldUseLocalTime}
|
|
1997
|
-
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1998
|
-
>
|
|
1999
|
-
</tile-dispatcher>
|
|
1968
|
+
return html `
|
|
1969
|
+
<tile-dispatcher
|
|
1970
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1971
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1972
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
1973
|
+
.model=${model}
|
|
1974
|
+
.tileDisplayMode=${this.displayMode}
|
|
1975
|
+
.resizeObserver=${this.resizeObserver}
|
|
1976
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1977
|
+
.sortParam=${this.sortParam}
|
|
1978
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1979
|
+
.creatorFilter=${this.selectedCreatorFilter}
|
|
1980
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1981
|
+
.loggedIn=${this.loggedIn}
|
|
1982
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1983
|
+
.isManageView=${this.isManageView}
|
|
1984
|
+
?showTvClips=${isTVSearch || isTVCollection}
|
|
1985
|
+
?enableHoverPane=${true}
|
|
1986
|
+
?useLocalTime=${shouldUseLocalTime}
|
|
1987
|
+
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1988
|
+
>
|
|
1989
|
+
</tile-dispatcher>
|
|
2000
1990
|
`;
|
|
2001
1991
|
}
|
|
2002
1992
|
/**
|
|
@@ -2031,479 +2021,479 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
2031
2021
|
static get styles() {
|
|
2032
2022
|
return [
|
|
2033
2023
|
srOnlyStyle,
|
|
2034
|
-
css `
|
|
2035
|
-
:host {
|
|
2036
|
-
display: block;
|
|
2037
|
-
--leftColumnWidth: 18rem;
|
|
2038
|
-
--leftColumnPaddingTop: 2rem;
|
|
2039
|
-
--leftColumnPaddingRight: 2.5rem;
|
|
2040
|
-
}
|
|
2041
|
-
|
|
2042
|
-
#facet-top-view {
|
|
2043
|
-
display: flex;
|
|
2044
|
-
}
|
|
2045
|
-
|
|
2046
|
-
/**
|
|
2047
|
-
* When page width resizes from desktop to mobile, use this class to
|
|
2048
|
-
* disable expand/collapse transition when loading.
|
|
2049
|
-
*/
|
|
2050
|
-
.preload * {
|
|
2051
|
-
transition: none !important;
|
|
2052
|
-
-webkit-transition: none !important;
|
|
2053
|
-
-moz-transition: none !important;
|
|
2054
|
-
-ms-transition: none !important;
|
|
2055
|
-
-o-transition: none !important;
|
|
2056
|
-
}
|
|
2057
|
-
|
|
2058
|
-
#content-container {
|
|
2059
|
-
display: flex;
|
|
2060
|
-
}
|
|
2061
|
-
|
|
2062
|
-
empty-placeholder {
|
|
2063
|
-
margin-top: var(--placeholderMarginTop, 0);
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
.collapser-icon {
|
|
2067
|
-
display: inline-block;
|
|
2068
|
-
}
|
|
2069
|
-
|
|
2070
|
-
.collapser-icon svg {
|
|
2071
|
-
display: inline-block;
|
|
2072
|
-
width: 12px;
|
|
2073
|
-
height: 12px;
|
|
2074
|
-
transition: transform 0.2s ease-out;
|
|
2075
|
-
}
|
|
2076
|
-
|
|
2077
|
-
#mobile-filter-collapse {
|
|
2078
|
-
width: 100%;
|
|
2079
|
-
}
|
|
2080
|
-
|
|
2081
|
-
#mobile-filter-collapse > summary {
|
|
2082
|
-
cursor: pointer;
|
|
2083
|
-
list-style: none;
|
|
2084
|
-
}
|
|
2085
|
-
|
|
2086
|
-
#mobile-filter-collapse[open] > summary {
|
|
2087
|
-
margin-bottom: 10px;
|
|
2088
|
-
}
|
|
2089
|
-
|
|
2090
|
-
#mobile-filter-collapse h2 {
|
|
2091
|
-
display: inline-block;
|
|
2092
|
-
margin: 0;
|
|
2093
|
-
font-size: 2rem;
|
|
2094
|
-
}
|
|
2095
|
-
|
|
2096
|
-
#mobile-filter-collapse[open] svg {
|
|
2097
|
-
transform: rotate(90deg);
|
|
2098
|
-
}
|
|
2099
|
-
|
|
2100
|
-
#content-container.mobile {
|
|
2101
|
-
display: block;
|
|
2102
|
-
}
|
|
2103
|
-
|
|
2104
|
-
#right-column {
|
|
2105
|
-
flex: 1;
|
|
2106
|
-
position: relative;
|
|
2107
|
-
min-height: 90vh;
|
|
2108
|
-
border-right: 1px solid rgb(232, 232, 232);
|
|
2109
|
-
margin-top: var(--rightColumnMarginTop, 0);
|
|
2110
|
-
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2111
|
-
background: #fff;
|
|
2112
|
-
}
|
|
2113
|
-
|
|
2114
|
-
#left-column:not([hidden]) + #right-column {
|
|
2115
|
-
border-left: 1px solid rgb(232, 232, 232);
|
|
2116
|
-
}
|
|
2117
|
-
|
|
2118
|
-
#right-column.smart-results-spacing {
|
|
2119
|
-
padding-top: 0.5rem;
|
|
2120
|
-
border-right: none;
|
|
2121
|
-
background: transparent;
|
|
2122
|
-
min-width: 0;
|
|
2123
|
-
}
|
|
2124
|
-
|
|
2125
|
-
#results {
|
|
2126
|
-
background: #fff;
|
|
2127
|
-
padding-left: 1rem;
|
|
2128
|
-
padding-right: 1rem;
|
|
2129
|
-
}
|
|
2130
|
-
|
|
2131
|
-
#right-column.smart-results-spacing #results {
|
|
2132
|
-
border-radius: 10px 10px 0px 0px;
|
|
2133
|
-
padding-top: 0.5rem;
|
|
2134
|
-
margin-top: 1rem;
|
|
2135
|
-
}
|
|
2136
|
-
|
|
2137
|
-
.mobile #right-column {
|
|
2138
|
-
border-left: none;
|
|
2139
|
-
}
|
|
2140
|
-
|
|
2141
|
-
.mobile #results {
|
|
2142
|
-
padding: 5px 5px 0;
|
|
2143
|
-
}
|
|
2144
|
-
|
|
2145
|
-
#left-column {
|
|
2146
|
-
width: var(--leftColumnWidth, 18rem);
|
|
2147
|
-
/* Prevents Safari from shrinking col at first draw */
|
|
2148
|
-
min-width: var(--leftColumnWidth, 18rem);
|
|
2149
|
-
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2150
|
-
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2151
|
-
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2152
|
-
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2153
|
-
z-index: 1;
|
|
2154
|
-
}
|
|
2155
|
-
|
|
2156
|
-
.desktop #left-column {
|
|
2157
|
-
top: 0;
|
|
2158
|
-
position: sticky;
|
|
2159
|
-
height: calc(100vh - 2rem);
|
|
2160
|
-
max-height: calc(100vh - 2rem);
|
|
2161
|
-
overflow-x: hidden;
|
|
2162
|
-
overflow-y: scroll;
|
|
2163
|
-
|
|
2164
|
-
/*
|
|
2165
|
-
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2166
|
-
* does at least give us a tiny bit of control over width & color.
|
|
2167
|
-
*/
|
|
2168
|
-
scrollbar-width: thin;
|
|
2169
|
-
scrollbar-color: transparent transparent;
|
|
2170
|
-
}
|
|
2171
|
-
.desktop #left-column:hover {
|
|
2172
|
-
scrollbar-color: auto;
|
|
2173
|
-
}
|
|
2174
|
-
.desktop #left-column::-webkit-scrollbar {
|
|
2175
|
-
appearance: none;
|
|
2176
|
-
width: 6px;
|
|
2177
|
-
}
|
|
2178
|
-
.desktop #left-column::-webkit-scrollbar-button {
|
|
2179
|
-
height: 3px;
|
|
2180
|
-
background: transparent;
|
|
2181
|
-
}
|
|
2182
|
-
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2183
|
-
background: transparent;
|
|
2184
|
-
}
|
|
2185
|
-
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2186
|
-
border-radius: 4px;
|
|
2187
|
-
}
|
|
2188
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2189
|
-
background: rgba(0, 0, 0, 0.15);
|
|
2190
|
-
}
|
|
2191
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2192
|
-
background: rgba(0, 0, 0, 0.2);
|
|
2193
|
-
}
|
|
2194
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2195
|
-
background: rgba(0, 0, 0, 0.3);
|
|
2196
|
-
}
|
|
2197
|
-
|
|
2198
|
-
#facets-bottom-fade {
|
|
2199
|
-
background: linear-gradient(
|
|
2200
|
-
to bottom,
|
|
2201
|
-
#fbfbfd00 0%,
|
|
2202
|
-
#fbfbfdc0 50%,
|
|
2203
|
-
#fbfbfd 80%,
|
|
2204
|
-
#fbfbfd 100%
|
|
2205
|
-
);
|
|
2206
|
-
position: fixed;
|
|
2207
|
-
bottom: 0;
|
|
2208
|
-
height: 50px;
|
|
2209
|
-
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2210
|
-
width: calc(
|
|
2211
|
-
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2212
|
-
);
|
|
2213
|
-
z-index: 2;
|
|
2214
|
-
pointer-events: none;
|
|
2215
|
-
transition: height 0.1s ease;
|
|
2216
|
-
}
|
|
2217
|
-
#facets-bottom-fade.hidden {
|
|
2218
|
-
height: 0;
|
|
2219
|
-
}
|
|
2220
|
-
|
|
2221
|
-
.facets-message {
|
|
2222
|
-
font-size: 1.4rem;
|
|
2223
|
-
}
|
|
2224
|
-
|
|
2225
|
-
.desktop-facets-dropdown > summary {
|
|
2226
|
-
cursor: pointer;
|
|
2227
|
-
list-style: none;
|
|
2228
|
-
}
|
|
2229
|
-
|
|
2230
|
-
.desktop-facets-dropdown h2 {
|
|
2231
|
-
display: inline-block;
|
|
2232
|
-
margin: 0;
|
|
2233
|
-
font-size: 1.6rem;
|
|
2234
|
-
}
|
|
2235
|
-
|
|
2236
|
-
.desktop-facets-dropdown[open] > summary {
|
|
2237
|
-
margin-bottom: 10px;
|
|
2238
|
-
}
|
|
2239
|
-
|
|
2240
|
-
.desktop-facets-dropdown[open] svg {
|
|
2241
|
-
transform: rotate(90deg);
|
|
2242
|
-
}
|
|
2243
|
-
|
|
2244
|
-
.desktop #left-column-scroll-sentinel {
|
|
2245
|
-
width: 1px;
|
|
2246
|
-
height: 100vh;
|
|
2247
|
-
background: transparent;
|
|
2248
|
-
}
|
|
2249
|
-
|
|
2250
|
-
.desktop #facets-scroll-sentinel {
|
|
2251
|
-
width: 1px;
|
|
2252
|
-
height: 1px;
|
|
2253
|
-
background: transparent;
|
|
2254
|
-
}
|
|
2255
|
-
|
|
2256
|
-
#facets-header-container {
|
|
2257
|
-
display: flex;
|
|
2258
|
-
justify-content: space-between;
|
|
2259
|
-
align-items: flex-start;
|
|
2260
|
-
clear: both;
|
|
2261
|
-
}
|
|
2262
|
-
|
|
2263
|
-
.desktop #facets-header-container {
|
|
2264
|
-
flex-wrap: wrap;
|
|
2265
|
-
}
|
|
2266
|
-
|
|
2267
|
-
.mobile #left-column {
|
|
2268
|
-
width: 100%;
|
|
2269
|
-
min-width: 0;
|
|
2270
|
-
padding: 5px 0;
|
|
2271
|
-
border: 0;
|
|
2272
|
-
}
|
|
2273
|
-
|
|
2274
|
-
.clear-filters-btn-row {
|
|
2275
|
-
display: inline-block;
|
|
2276
|
-
}
|
|
2277
|
-
|
|
2278
|
-
.desktop .clear-filters-btn-row {
|
|
2279
|
-
width: 100%;
|
|
2280
|
-
}
|
|
2281
|
-
|
|
2282
|
-
.clear-filters-btn {
|
|
2283
|
-
display: inline-block;
|
|
2284
|
-
appearance: none;
|
|
2285
|
-
margin: 0;
|
|
2286
|
-
padding: 0;
|
|
2287
|
-
border: 0;
|
|
2288
|
-
background: none;
|
|
2289
|
-
color: var(--ia-theme-link-color);
|
|
2290
|
-
font-size: 1.4rem;
|
|
2291
|
-
font-family: inherit;
|
|
2292
|
-
cursor: pointer;
|
|
2293
|
-
}
|
|
2294
|
-
|
|
2295
|
-
.clear-filters-btn:hover {
|
|
2296
|
-
text-decoration: underline;
|
|
2297
|
-
}
|
|
2298
|
-
|
|
2299
|
-
.clear-filters-btn-separator {
|
|
2300
|
-
display: inline-block;
|
|
2301
|
-
margin-left: 5px;
|
|
2302
|
-
border-left: 1px solid #2c2c2c;
|
|
2303
|
-
font-size: 1.4rem;
|
|
2304
|
-
line-height: 1.3rem;
|
|
2305
|
-
}
|
|
2306
|
-
|
|
2307
|
-
#tv-filters {
|
|
2308
|
-
margin-bottom: 15px;
|
|
2309
|
-
}
|
|
2310
|
-
|
|
2311
|
-
#tv-shows {
|
|
2312
|
-
--comboBoxListWidth: 300px;
|
|
2313
|
-
}
|
|
2314
|
-
|
|
2315
|
-
.tv-filter-dropdown {
|
|
2316
|
-
display: block;
|
|
2317
|
-
font-size: 14px;
|
|
2318
|
-
margin-left: 1px;
|
|
2319
|
-
margin-bottom: 5px;
|
|
2320
|
-
}
|
|
2321
|
-
|
|
2322
|
-
.tv-filter-dropdown::part(combo-box) {
|
|
2323
|
-
outline-offset: 1px;
|
|
2324
|
-
}
|
|
2325
|
-
|
|
2326
|
-
.tv-filter-dropdown::part(option) {
|
|
2327
|
-
line-height: 1.1;
|
|
2328
|
-
padding: 7px;
|
|
2329
|
-
}
|
|
2330
|
-
|
|
2331
|
-
.tv-filter-dropdown::part(clear-button) {
|
|
2332
|
-
flex: 0 0 26px;
|
|
2333
|
-
--combo-box-clear-icon-size: 14px;
|
|
2334
|
-
}
|
|
2335
|
-
|
|
2336
|
-
.tv-filter-dropdown::part(icon) {
|
|
2337
|
-
width: 1.4rem;
|
|
2338
|
-
height: 1.4rem;
|
|
2339
|
-
}
|
|
2340
|
-
|
|
2341
|
-
#facets-container {
|
|
2342
|
-
position: relative;
|
|
2343
|
-
max-height: 0;
|
|
2344
|
-
transition: max-height 0.2s ease-in-out;
|
|
2345
|
-
z-index: 1;
|
|
2346
|
-
margin-top: var(--facetsContainerMarginTop, 3rem);
|
|
2347
|
-
padding-bottom: 2rem;
|
|
2348
|
-
}
|
|
2349
|
-
|
|
2350
|
-
.desktop #facets-container {
|
|
2351
|
-
width: 18rem;
|
|
2352
|
-
}
|
|
2353
|
-
|
|
2354
|
-
.mobile #facets-container {
|
|
2355
|
-
overflow: hidden;
|
|
2356
|
-
padding-bottom: 0;
|
|
2357
|
-
padding-left: 10px;
|
|
2358
|
-
padding-right: 10px;
|
|
2359
|
-
}
|
|
2360
|
-
|
|
2361
|
-
#facets-container.expanded {
|
|
2362
|
-
max-height: 2000px;
|
|
2363
|
-
}
|
|
2364
|
-
|
|
2365
|
-
.results-section-heading {
|
|
2366
|
-
margin: 0.5rem 0.3rem;
|
|
2367
|
-
font-size: 2rem;
|
|
2368
|
-
line-height: 25px;
|
|
2369
|
-
}
|
|
2370
|
-
|
|
2371
|
-
#results-total {
|
|
2372
|
-
display: flex;
|
|
2373
|
-
align-items: baseline;
|
|
2374
|
-
}
|
|
2375
|
-
|
|
2376
|
-
#results-total:not(.filtered) {
|
|
2377
|
-
padding-bottom: 2rem;
|
|
2378
|
-
}
|
|
2379
|
-
|
|
2380
|
-
.mobile #results-total {
|
|
2381
|
-
position: absolute;
|
|
2382
|
-
right: 10px;
|
|
2383
|
-
}
|
|
2384
|
-
|
|
2385
|
-
#big-results-count {
|
|
2386
|
-
font-size: 2.4rem;
|
|
2387
|
-
font-weight: 500;
|
|
2388
|
-
margin-right: 5px;
|
|
2389
|
-
}
|
|
2390
|
-
|
|
2391
|
-
.mobile #big-results-count {
|
|
2392
|
-
font-size: 2rem;
|
|
2393
|
-
}
|
|
2394
|
-
|
|
2395
|
-
#big-results-label {
|
|
2396
|
-
font-size: 1.4rem;
|
|
2397
|
-
font-weight: 200;
|
|
2398
|
-
}
|
|
2399
|
-
|
|
2400
|
-
#list-header {
|
|
2401
|
-
max-height: 4.2rem;
|
|
2402
|
-
}
|
|
2403
|
-
|
|
2404
|
-
.loading-cover {
|
|
2405
|
-
position: absolute;
|
|
2406
|
-
top: 0;
|
|
2407
|
-
left: 0;
|
|
2408
|
-
width: 100%;
|
|
2409
|
-
height: 100%;
|
|
2410
|
-
display: flex;
|
|
2411
|
-
justify-content: center;
|
|
2412
|
-
z-index: 1;
|
|
2413
|
-
padding-top: 50px;
|
|
2414
|
-
}
|
|
2415
|
-
|
|
2416
|
-
#tile-blur-label {
|
|
2417
|
-
display: flex;
|
|
2418
|
-
align-items: center;
|
|
2419
|
-
column-gap: 5px;
|
|
2420
|
-
}
|
|
2421
|
-
|
|
2422
|
-
#tile-blur-check {
|
|
2423
|
-
margin: 0 5px 0 0;
|
|
2424
|
-
width: 15px;
|
|
2425
|
-
}
|
|
2426
|
-
|
|
2427
|
-
circular-activity-indicator {
|
|
2428
|
-
width: 30px;
|
|
2429
|
-
height: 30px;
|
|
2430
|
-
}
|
|
2431
|
-
|
|
2432
|
-
sort-filter-bar {
|
|
2433
|
-
display: block;
|
|
2434
|
-
margin-bottom: 4rem;
|
|
2435
|
-
}
|
|
2436
|
-
|
|
2437
|
-
infinite-scroller {
|
|
2438
|
-
display: block;
|
|
2439
|
-
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2440
|
-
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2441
|
-
}
|
|
2442
|
-
|
|
2443
|
-
infinite-scroller.list-compact {
|
|
2444
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2445
|
-
--collectionBrowserCellMinWidth,
|
|
2446
|
-
100%
|
|
2447
|
-
);
|
|
2448
|
-
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2449
|
-
--infiniteScrollerCellMaxHeight: 56px;
|
|
2450
|
-
--infiniteScrollerRowGap: 10px;
|
|
2451
|
-
}
|
|
2452
|
-
|
|
2453
|
-
infinite-scroller.list-detail {
|
|
2454
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2455
|
-
--collectionBrowserCellMinWidth,
|
|
2456
|
-
100%
|
|
2457
|
-
);
|
|
2458
|
-
--infiniteScrollerCellMinHeight: var(
|
|
2459
|
-
--collectionBrowserCellMinHeight,
|
|
2460
|
-
5rem
|
|
2461
|
-
);
|
|
2462
|
-
/*
|
|
2463
|
-
30px in spec, compensating for a -4px margin
|
|
2464
|
-
to align title with top of item image
|
|
2465
|
-
src/tiles/list/tile-list.ts
|
|
2466
|
-
*/
|
|
2467
|
-
--infiniteScrollerRowGap: 34px;
|
|
2468
|
-
}
|
|
2469
|
-
|
|
2470
|
-
.mobile infinite-scroller.list-detail {
|
|
2471
|
-
--infiniteScrollerRowGap: 24px;
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
|
-
infinite-scroller.grid {
|
|
2475
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2476
|
-
--collectionBrowserCellMinWidth,
|
|
2477
|
-
17rem
|
|
2478
|
-
);
|
|
2479
|
-
--infiniteScrollerCellMaxWidth: var(
|
|
2480
|
-
--collectionBrowserCellMaxWidth,
|
|
2481
|
-
1fr
|
|
2482
|
-
);
|
|
2483
|
-
}
|
|
2484
|
-
|
|
2485
|
-
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2486
|
-
@media screen and (max-width: 880px) {
|
|
2487
|
-
infinite-scroller.grid {
|
|
2488
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2489
|
-
--collectionBrowserCellMinWidth,
|
|
2490
|
-
15rem
|
|
2491
|
-
);
|
|
2492
|
-
}
|
|
2493
|
-
}
|
|
2494
|
-
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2495
|
-
@media screen and (max-width: 360px) {
|
|
2496
|
-
infinite-scroller.grid {
|
|
2497
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2498
|
-
--collectionBrowserCellMinWidth,
|
|
2499
|
-
12rem
|
|
2500
|
-
);
|
|
2501
|
-
}
|
|
2502
|
-
}
|
|
2503
|
-
|
|
2504
|
-
infinite-scroller.hidden {
|
|
2505
|
-
display: none;
|
|
2506
|
-
}
|
|
2024
|
+
css `
|
|
2025
|
+
:host {
|
|
2026
|
+
display: block;
|
|
2027
|
+
--leftColumnWidth: 18rem;
|
|
2028
|
+
--leftColumnPaddingTop: 2rem;
|
|
2029
|
+
--leftColumnPaddingRight: 2.5rem;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
#facet-top-view {
|
|
2033
|
+
display: flex;
|
|
2034
|
+
}
|
|
2035
|
+
|
|
2036
|
+
/**
|
|
2037
|
+
* When page width resizes from desktop to mobile, use this class to
|
|
2038
|
+
* disable expand/collapse transition when loading.
|
|
2039
|
+
*/
|
|
2040
|
+
.preload * {
|
|
2041
|
+
transition: none !important;
|
|
2042
|
+
-webkit-transition: none !important;
|
|
2043
|
+
-moz-transition: none !important;
|
|
2044
|
+
-ms-transition: none !important;
|
|
2045
|
+
-o-transition: none !important;
|
|
2046
|
+
}
|
|
2047
|
+
|
|
2048
|
+
#content-container {
|
|
2049
|
+
display: flex;
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
empty-placeholder {
|
|
2053
|
+
margin-top: var(--placeholderMarginTop, 0);
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
.collapser-icon {
|
|
2057
|
+
display: inline-block;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.collapser-icon svg {
|
|
2061
|
+
display: inline-block;
|
|
2062
|
+
width: 12px;
|
|
2063
|
+
height: 12px;
|
|
2064
|
+
transition: transform 0.2s ease-out;
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
#mobile-filter-collapse {
|
|
2068
|
+
width: 100%;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
#mobile-filter-collapse > summary {
|
|
2072
|
+
cursor: pointer;
|
|
2073
|
+
list-style: none;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
#mobile-filter-collapse[open] > summary {
|
|
2077
|
+
margin-bottom: 10px;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
#mobile-filter-collapse h2 {
|
|
2081
|
+
display: inline-block;
|
|
2082
|
+
margin: 0;
|
|
2083
|
+
font-size: 2rem;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
#mobile-filter-collapse[open] svg {
|
|
2087
|
+
transform: rotate(90deg);
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
#content-container.mobile {
|
|
2091
|
+
display: block;
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2094
|
+
#right-column {
|
|
2095
|
+
flex: 1;
|
|
2096
|
+
position: relative;
|
|
2097
|
+
min-height: 90vh;
|
|
2098
|
+
border-right: 1px solid rgb(232, 232, 232);
|
|
2099
|
+
margin-top: var(--rightColumnMarginTop, 0);
|
|
2100
|
+
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2101
|
+
background: #fff;
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
#left-column:not([hidden]) + #right-column {
|
|
2105
|
+
border-left: 1px solid rgb(232, 232, 232);
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
#right-column.smart-results-spacing {
|
|
2109
|
+
padding-top: 0.5rem;
|
|
2110
|
+
border-right: none;
|
|
2111
|
+
background: transparent;
|
|
2112
|
+
min-width: 0;
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
#results {
|
|
2116
|
+
background: #fff;
|
|
2117
|
+
padding-left: 1rem;
|
|
2118
|
+
padding-right: 1rem;
|
|
2119
|
+
}
|
|
2120
|
+
|
|
2121
|
+
#right-column.smart-results-spacing #results {
|
|
2122
|
+
border-radius: 10px 10px 0px 0px;
|
|
2123
|
+
padding-top: 0.5rem;
|
|
2124
|
+
margin-top: 1rem;
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
.mobile #right-column {
|
|
2128
|
+
border-left: none;
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2131
|
+
.mobile #results {
|
|
2132
|
+
padding: 5px 5px 0;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
#left-column {
|
|
2136
|
+
width: var(--leftColumnWidth, 18rem);
|
|
2137
|
+
/* Prevents Safari from shrinking col at first draw */
|
|
2138
|
+
min-width: var(--leftColumnWidth, 18rem);
|
|
2139
|
+
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2140
|
+
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2141
|
+
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2142
|
+
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2143
|
+
z-index: 1;
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
.desktop #left-column {
|
|
2147
|
+
top: 0;
|
|
2148
|
+
position: sticky;
|
|
2149
|
+
height: calc(100vh - 2rem);
|
|
2150
|
+
max-height: calc(100vh - 2rem);
|
|
2151
|
+
overflow-x: hidden;
|
|
2152
|
+
overflow-y: scroll;
|
|
2153
|
+
|
|
2154
|
+
/*
|
|
2155
|
+
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2156
|
+
* does at least give us a tiny bit of control over width & color.
|
|
2157
|
+
*/
|
|
2158
|
+
scrollbar-width: thin;
|
|
2159
|
+
scrollbar-color: transparent transparent;
|
|
2160
|
+
}
|
|
2161
|
+
.desktop #left-column:hover {
|
|
2162
|
+
scrollbar-color: auto;
|
|
2163
|
+
}
|
|
2164
|
+
.desktop #left-column::-webkit-scrollbar {
|
|
2165
|
+
appearance: none;
|
|
2166
|
+
width: 6px;
|
|
2167
|
+
}
|
|
2168
|
+
.desktop #left-column::-webkit-scrollbar-button {
|
|
2169
|
+
height: 3px;
|
|
2170
|
+
background: transparent;
|
|
2171
|
+
}
|
|
2172
|
+
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2173
|
+
background: transparent;
|
|
2174
|
+
}
|
|
2175
|
+
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2176
|
+
border-radius: 4px;
|
|
2177
|
+
}
|
|
2178
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2179
|
+
background: rgba(0, 0, 0, 0.15);
|
|
2180
|
+
}
|
|
2181
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2182
|
+
background: rgba(0, 0, 0, 0.2);
|
|
2183
|
+
}
|
|
2184
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2185
|
+
background: rgba(0, 0, 0, 0.3);
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2188
|
+
#facets-bottom-fade {
|
|
2189
|
+
background: linear-gradient(
|
|
2190
|
+
to bottom,
|
|
2191
|
+
#fbfbfd00 0%,
|
|
2192
|
+
#fbfbfdc0 50%,
|
|
2193
|
+
#fbfbfd 80%,
|
|
2194
|
+
#fbfbfd 100%
|
|
2195
|
+
);
|
|
2196
|
+
position: fixed;
|
|
2197
|
+
bottom: 0;
|
|
2198
|
+
height: 50px;
|
|
2199
|
+
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2200
|
+
width: calc(
|
|
2201
|
+
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2202
|
+
);
|
|
2203
|
+
z-index: 2;
|
|
2204
|
+
pointer-events: none;
|
|
2205
|
+
transition: height 0.1s ease;
|
|
2206
|
+
}
|
|
2207
|
+
#facets-bottom-fade.hidden {
|
|
2208
|
+
height: 0;
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
.facets-message {
|
|
2212
|
+
font-size: 1.4rem;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
.desktop-facets-dropdown > summary {
|
|
2216
|
+
cursor: pointer;
|
|
2217
|
+
list-style: none;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
.desktop-facets-dropdown h2 {
|
|
2221
|
+
display: inline-block;
|
|
2222
|
+
margin: 0;
|
|
2223
|
+
font-size: 1.6rem;
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2226
|
+
.desktop-facets-dropdown[open] > summary {
|
|
2227
|
+
margin-bottom: 10px;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
.desktop-facets-dropdown[open] svg {
|
|
2231
|
+
transform: rotate(90deg);
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
.desktop #left-column-scroll-sentinel {
|
|
2235
|
+
width: 1px;
|
|
2236
|
+
height: 100vh;
|
|
2237
|
+
background: transparent;
|
|
2238
|
+
}
|
|
2239
|
+
|
|
2240
|
+
.desktop #facets-scroll-sentinel {
|
|
2241
|
+
width: 1px;
|
|
2242
|
+
height: 1px;
|
|
2243
|
+
background: transparent;
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
#facets-header-container {
|
|
2247
|
+
display: flex;
|
|
2248
|
+
justify-content: space-between;
|
|
2249
|
+
align-items: flex-start;
|
|
2250
|
+
clear: both;
|
|
2251
|
+
}
|
|
2252
|
+
|
|
2253
|
+
.desktop #facets-header-container {
|
|
2254
|
+
flex-wrap: wrap;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2257
|
+
.mobile #left-column {
|
|
2258
|
+
width: 100%;
|
|
2259
|
+
min-width: 0;
|
|
2260
|
+
padding: 5px 0;
|
|
2261
|
+
border: 0;
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
.clear-filters-btn-row {
|
|
2265
|
+
display: inline-block;
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
.desktop .clear-filters-btn-row {
|
|
2269
|
+
width: 100%;
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
.clear-filters-btn {
|
|
2273
|
+
display: inline-block;
|
|
2274
|
+
appearance: none;
|
|
2275
|
+
margin: 0;
|
|
2276
|
+
padding: 0;
|
|
2277
|
+
border: 0;
|
|
2278
|
+
background: none;
|
|
2279
|
+
color: var(--ia-theme-link-color);
|
|
2280
|
+
font-size: 1.4rem;
|
|
2281
|
+
font-family: inherit;
|
|
2282
|
+
cursor: pointer;
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
.clear-filters-btn:hover {
|
|
2286
|
+
text-decoration: underline;
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2289
|
+
.clear-filters-btn-separator {
|
|
2290
|
+
display: inline-block;
|
|
2291
|
+
margin-left: 5px;
|
|
2292
|
+
border-left: 1px solid #2c2c2c;
|
|
2293
|
+
font-size: 1.4rem;
|
|
2294
|
+
line-height: 1.3rem;
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
#tv-filters {
|
|
2298
|
+
margin-bottom: 15px;
|
|
2299
|
+
}
|
|
2300
|
+
|
|
2301
|
+
#tv-shows {
|
|
2302
|
+
--comboBoxListWidth: 300px;
|
|
2303
|
+
}
|
|
2304
|
+
|
|
2305
|
+
.tv-filter-dropdown {
|
|
2306
|
+
display: block;
|
|
2307
|
+
font-size: 14px;
|
|
2308
|
+
margin-left: 1px;
|
|
2309
|
+
margin-bottom: 5px;
|
|
2310
|
+
}
|
|
2311
|
+
|
|
2312
|
+
.tv-filter-dropdown::part(combo-box) {
|
|
2313
|
+
outline-offset: 1px;
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
.tv-filter-dropdown::part(option) {
|
|
2317
|
+
line-height: 1.1;
|
|
2318
|
+
padding: 7px;
|
|
2319
|
+
}
|
|
2320
|
+
|
|
2321
|
+
.tv-filter-dropdown::part(clear-button) {
|
|
2322
|
+
flex: 0 0 26px;
|
|
2323
|
+
--combo-box-clear-icon-size: 14px;
|
|
2324
|
+
}
|
|
2325
|
+
|
|
2326
|
+
.tv-filter-dropdown::part(icon) {
|
|
2327
|
+
width: 1.4rem;
|
|
2328
|
+
height: 1.4rem;
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
#facets-container {
|
|
2332
|
+
position: relative;
|
|
2333
|
+
max-height: 0;
|
|
2334
|
+
transition: max-height 0.2s ease-in-out;
|
|
2335
|
+
z-index: 1;
|
|
2336
|
+
margin-top: var(--facetsContainerMarginTop, 3rem);
|
|
2337
|
+
padding-bottom: 2rem;
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
.desktop #facets-container {
|
|
2341
|
+
width: 18rem;
|
|
2342
|
+
}
|
|
2343
|
+
|
|
2344
|
+
.mobile #facets-container {
|
|
2345
|
+
overflow: hidden;
|
|
2346
|
+
padding-bottom: 0;
|
|
2347
|
+
padding-left: 10px;
|
|
2348
|
+
padding-right: 10px;
|
|
2349
|
+
}
|
|
2350
|
+
|
|
2351
|
+
#facets-container.expanded {
|
|
2352
|
+
max-height: 2000px;
|
|
2353
|
+
}
|
|
2354
|
+
|
|
2355
|
+
.results-section-heading {
|
|
2356
|
+
margin: 0.5rem 0.3rem;
|
|
2357
|
+
font-size: 2rem;
|
|
2358
|
+
line-height: 25px;
|
|
2359
|
+
}
|
|
2360
|
+
|
|
2361
|
+
#results-total {
|
|
2362
|
+
display: flex;
|
|
2363
|
+
align-items: baseline;
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
#results-total:not(.filtered) {
|
|
2367
|
+
padding-bottom: 2rem;
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
.mobile #results-total {
|
|
2371
|
+
position: absolute;
|
|
2372
|
+
right: 10px;
|
|
2373
|
+
}
|
|
2374
|
+
|
|
2375
|
+
#big-results-count {
|
|
2376
|
+
font-size: 2.4rem;
|
|
2377
|
+
font-weight: 500;
|
|
2378
|
+
margin-right: 5px;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
.mobile #big-results-count {
|
|
2382
|
+
font-size: 2rem;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
#big-results-label {
|
|
2386
|
+
font-size: 1.4rem;
|
|
2387
|
+
font-weight: 200;
|
|
2388
|
+
}
|
|
2389
|
+
|
|
2390
|
+
#list-header {
|
|
2391
|
+
max-height: 4.2rem;
|
|
2392
|
+
}
|
|
2393
|
+
|
|
2394
|
+
.loading-cover {
|
|
2395
|
+
position: absolute;
|
|
2396
|
+
top: 0;
|
|
2397
|
+
left: 0;
|
|
2398
|
+
width: 100%;
|
|
2399
|
+
height: 100%;
|
|
2400
|
+
display: flex;
|
|
2401
|
+
justify-content: center;
|
|
2402
|
+
z-index: 1;
|
|
2403
|
+
padding-top: 50px;
|
|
2404
|
+
}
|
|
2405
|
+
|
|
2406
|
+
#tile-blur-label {
|
|
2407
|
+
display: flex;
|
|
2408
|
+
align-items: center;
|
|
2409
|
+
column-gap: 5px;
|
|
2410
|
+
}
|
|
2411
|
+
|
|
2412
|
+
#tile-blur-check {
|
|
2413
|
+
margin: 0 5px 0 0;
|
|
2414
|
+
width: 15px;
|
|
2415
|
+
}
|
|
2416
|
+
|
|
2417
|
+
circular-activity-indicator {
|
|
2418
|
+
width: 30px;
|
|
2419
|
+
height: 30px;
|
|
2420
|
+
}
|
|
2421
|
+
|
|
2422
|
+
sort-filter-bar {
|
|
2423
|
+
display: block;
|
|
2424
|
+
margin-bottom: 4rem;
|
|
2425
|
+
}
|
|
2426
|
+
|
|
2427
|
+
infinite-scroller {
|
|
2428
|
+
display: block;
|
|
2429
|
+
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2430
|
+
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
infinite-scroller.list-compact {
|
|
2434
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2435
|
+
--collectionBrowserCellMinWidth,
|
|
2436
|
+
100%
|
|
2437
|
+
);
|
|
2438
|
+
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2439
|
+
--infiniteScrollerCellMaxHeight: 56px;
|
|
2440
|
+
--infiniteScrollerRowGap: 10px;
|
|
2441
|
+
}
|
|
2442
|
+
|
|
2443
|
+
infinite-scroller.list-detail {
|
|
2444
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2445
|
+
--collectionBrowserCellMinWidth,
|
|
2446
|
+
100%
|
|
2447
|
+
);
|
|
2448
|
+
--infiniteScrollerCellMinHeight: var(
|
|
2449
|
+
--collectionBrowserCellMinHeight,
|
|
2450
|
+
5rem
|
|
2451
|
+
);
|
|
2452
|
+
/*
|
|
2453
|
+
30px in spec, compensating for a -4px margin
|
|
2454
|
+
to align title with top of item image
|
|
2455
|
+
src/tiles/list/tile-list.ts
|
|
2456
|
+
*/
|
|
2457
|
+
--infiniteScrollerRowGap: 34px;
|
|
2458
|
+
}
|
|
2459
|
+
|
|
2460
|
+
.mobile infinite-scroller.list-detail {
|
|
2461
|
+
--infiniteScrollerRowGap: 24px;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
infinite-scroller.grid {
|
|
2465
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2466
|
+
--collectionBrowserCellMinWidth,
|
|
2467
|
+
17rem
|
|
2468
|
+
);
|
|
2469
|
+
--infiniteScrollerCellMaxWidth: var(
|
|
2470
|
+
--collectionBrowserCellMaxWidth,
|
|
2471
|
+
1fr
|
|
2472
|
+
);
|
|
2473
|
+
}
|
|
2474
|
+
|
|
2475
|
+
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2476
|
+
@media screen and (max-width: 880px) {
|
|
2477
|
+
infinite-scroller.grid {
|
|
2478
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2479
|
+
--collectionBrowserCellMinWidth,
|
|
2480
|
+
15rem
|
|
2481
|
+
);
|
|
2482
|
+
}
|
|
2483
|
+
}
|
|
2484
|
+
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2485
|
+
@media screen and (max-width: 360px) {
|
|
2486
|
+
infinite-scroller.grid {
|
|
2487
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2488
|
+
--collectionBrowserCellMinWidth,
|
|
2489
|
+
12rem
|
|
2490
|
+
);
|
|
2491
|
+
}
|
|
2492
|
+
}
|
|
2493
|
+
|
|
2494
|
+
infinite-scroller.hidden {
|
|
2495
|
+
display: none;
|
|
2496
|
+
}
|
|
2507
2497
|
`,
|
|
2508
2498
|
];
|
|
2509
2499
|
}
|