@internetarchive/collection-browser 4.4.0 → 4.4.1
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/.editorconfig +29 -29
- package/.github/workflows/ci.yml +27 -27
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +1 -1
- package/.prettierignore +1 -1
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/src/app-root.js +672 -672
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.js +763 -763
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/tiles/item-image.js +28 -28
- package/dist/src/tiles/item-image.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.js +2 -1
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +2 -2
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +2 -2
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +14 -0
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/eslint.config.mjs +53 -53
- package/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +120 -120
- package/renovate.json +6 -6
- package/src/app-root.ts +1254 -1254
- package/src/collection-browser.ts +3161 -3161
- package/src/data-source/collection-browser-data-source.ts +1465 -1465
- package/src/tiles/item-image.ts +214 -214
- package/src/tiles/tile-display-value-provider.ts +2 -3
- package/test/tiles/grid/item-tile.test.ts +2 -2
- package/test/tiles/list/tile-list.test.ts +2 -2
- package/test/tiles/tile-dispatcher.test.ts +20 -0
- package/tsconfig.json +25 -25
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +52 -52
|
@@ -451,32 +451,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
render() {
|
|
454
|
-
return html `
|
|
454
|
+
return html `
|
|
455
455
|
${this.showSmartFacetBar && this.placeholderType === null
|
|
456
|
-
? html `<smart-facet-bar
|
|
457
|
-
.query=${this.baseQuery}
|
|
458
|
-
.aggregations=${this.dataSource.aggregations}
|
|
459
|
-
.selectedFacets=${this.selectedFacets}
|
|
460
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
461
|
-
.filterToggleShown=${!this.mobileView}
|
|
462
|
-
.filterToggleActive=${this.facetPaneVisible}
|
|
463
|
-
.label=${this.smartFacetBarLabel}
|
|
464
|
-
@facetsChanged=${this.facetsChanged}
|
|
456
|
+
? html `<smart-facet-bar
|
|
457
|
+
.query=${this.baseQuery}
|
|
458
|
+
.aggregations=${this.dataSource.aggregations}
|
|
459
|
+
.selectedFacets=${this.selectedFacets}
|
|
460
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
461
|
+
.filterToggleShown=${!this.mobileView}
|
|
462
|
+
.filterToggleActive=${this.facetPaneVisible}
|
|
463
|
+
.label=${this.smartFacetBarLabel}
|
|
464
|
+
@facetsChanged=${this.facetsChanged}
|
|
465
465
|
@filtersToggled=${() => {
|
|
466
466
|
this.facetPaneVisible = !this.facetPaneVisible;
|
|
467
467
|
this.emitFacetPaneVisibilityChanged();
|
|
468
|
-
}}
|
|
468
|
+
}}
|
|
469
469
|
></smart-facet-bar>`
|
|
470
|
-
: nothing}
|
|
471
|
-
|
|
472
|
-
<div
|
|
473
|
-
id="content-container"
|
|
474
|
-
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
475
|
-
>
|
|
470
|
+
: nothing}
|
|
471
|
+
|
|
472
|
+
<div
|
|
473
|
+
id="content-container"
|
|
474
|
+
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
475
|
+
>
|
|
476
476
|
${this.placeholderType
|
|
477
477
|
? this.emptyPlaceholderTemplate
|
|
478
|
-
: this.collectionBrowserTemplate}
|
|
479
|
-
</div>
|
|
478
|
+
: this.collectionBrowserTemplate}
|
|
479
|
+
</div>
|
|
480
480
|
`;
|
|
481
481
|
}
|
|
482
482
|
/**
|
|
@@ -520,23 +520,23 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
520
520
|
* Template for the placeholder content to show when no results are available.
|
|
521
521
|
*/
|
|
522
522
|
get emptyPlaceholderTemplate() {
|
|
523
|
-
return html `
|
|
524
|
-
<empty-placeholder
|
|
525
|
-
.placeholderType=${this.placeholderType}
|
|
526
|
-
?isMobileView=${this.mobileView}
|
|
527
|
-
?isCollection=${!!this.withinCollection}
|
|
528
|
-
.detailMessage=${this.dataSource.queryErrorMessage ?? ''}
|
|
529
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
530
|
-
></empty-placeholder>
|
|
523
|
+
return html `
|
|
524
|
+
<empty-placeholder
|
|
525
|
+
.placeholderType=${this.placeholderType}
|
|
526
|
+
?isMobileView=${this.mobileView}
|
|
527
|
+
?isCollection=${!!this.withinCollection}
|
|
528
|
+
.detailMessage=${this.dataSource.queryErrorMessage ?? ''}
|
|
529
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
530
|
+
></empty-placeholder>
|
|
531
531
|
`;
|
|
532
532
|
}
|
|
533
533
|
/**
|
|
534
534
|
* Top-level template for rendering the left (facets) and right (results) columns.
|
|
535
535
|
*/
|
|
536
536
|
get collectionBrowserTemplate() {
|
|
537
|
-
return html `
|
|
538
|
-
<div id="left-column-scroll-sentinel"></div>
|
|
539
|
-
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
537
|
+
return html `
|
|
538
|
+
<div id="left-column-scroll-sentinel"></div>
|
|
539
|
+
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
540
540
|
`;
|
|
541
541
|
}
|
|
542
542
|
/**
|
|
@@ -555,33 +555,33 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
555
555
|
* accordion-style facets.
|
|
556
556
|
*/
|
|
557
557
|
get mobileLeftColumnTemplate() {
|
|
558
|
-
return html `
|
|
559
|
-
<div
|
|
560
|
-
id="left-column"
|
|
561
|
-
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
562
|
-
>
|
|
563
|
-
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
564
|
-
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
565
|
-
</div>
|
|
558
|
+
return html `
|
|
559
|
+
<div
|
|
560
|
+
id="left-column"
|
|
561
|
+
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
562
|
+
>
|
|
563
|
+
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
564
|
+
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
565
|
+
</div>
|
|
566
566
|
`;
|
|
567
567
|
}
|
|
568
568
|
/**
|
|
569
569
|
* Template for the desktop version of the left column, displaying the facets sidebar.
|
|
570
570
|
*/
|
|
571
571
|
get desktopLeftColumnTemplate() {
|
|
572
|
-
return html `
|
|
573
|
-
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
574
|
-
${this.facetTopViewSlot}
|
|
575
|
-
<div id="facets-header-container">
|
|
576
|
-
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
577
|
-
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
578
|
-
</div>
|
|
579
|
-
<div id="facets-container" aria-labelledby="facets-header">
|
|
580
|
-
${this.facetsTemplate}
|
|
581
|
-
<div id="facets-scroll-sentinel"></div>
|
|
582
|
-
</div>
|
|
583
|
-
<div id="facets-bottom-fade"></div>
|
|
584
|
-
</div>
|
|
572
|
+
return html `
|
|
573
|
+
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
574
|
+
${this.facetTopViewSlot}
|
|
575
|
+
<div id="facets-header-container">
|
|
576
|
+
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
577
|
+
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
578
|
+
</div>
|
|
579
|
+
<div id="facets-container" aria-labelledby="facets-header">
|
|
580
|
+
${this.facetsTemplate}
|
|
581
|
+
<div id="facets-scroll-sentinel"></div>
|
|
582
|
+
</div>
|
|
583
|
+
<div id="facets-bottom-fade"></div>
|
|
584
|
+
</div>
|
|
585
585
|
`;
|
|
586
586
|
}
|
|
587
587
|
/**
|
|
@@ -589,8 +589,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
589
589
|
* - mainly used to render userlists
|
|
590
590
|
*/
|
|
591
591
|
get facetTopViewSlot() {
|
|
592
|
-
return html `<div id="facet-top-view">
|
|
593
|
-
<slot name="facet-top-slot"></slot>
|
|
592
|
+
return html `<div id="facet-top-view">
|
|
593
|
+
<slot name="facet-top-slot"></slot>
|
|
594
594
|
</div>`;
|
|
595
595
|
}
|
|
596
596
|
/**
|
|
@@ -605,15 +605,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
605
605
|
const resultsCount = this.totalResults?.toLocaleString();
|
|
606
606
|
const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
|
|
607
607
|
// Added data-testid for Playwright testing
|
|
608
|
-
return html `
|
|
609
|
-
<div id="results-total" class=${classes} data-testid="results-total">
|
|
610
|
-
<span id="big-results-count">
|
|
611
|
-
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
612
|
-
</span>
|
|
613
|
-
<span id="big-results-label">
|
|
614
|
-
${shouldShowSearching ? nothing : resultsLabel}
|
|
615
|
-
</span>
|
|
616
|
-
</div>
|
|
608
|
+
return html `
|
|
609
|
+
<div id="results-total" class=${classes} data-testid="results-total">
|
|
610
|
+
<span id="big-results-count">
|
|
611
|
+
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
612
|
+
</span>
|
|
613
|
+
<span id="big-results-label">
|
|
614
|
+
${shouldShowSearching ? nothing : resultsLabel}
|
|
615
|
+
</span>
|
|
616
|
+
</div>
|
|
617
617
|
`;
|
|
618
618
|
}
|
|
619
619
|
/**
|
|
@@ -626,47 +626,47 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
626
626
|
'full-width': !this.facetPaneVisible,
|
|
627
627
|
'smart-results-spacing': !!this.showSmartResults,
|
|
628
628
|
});
|
|
629
|
-
return html `
|
|
630
|
-
<div id="right-column" class=${rightColumnClasses}>
|
|
629
|
+
return html `
|
|
630
|
+
<div id="right-column" class=${rightColumnClasses}>
|
|
631
631
|
${this.showSmartResults
|
|
632
632
|
? html `<slot name="smart-results"></slot>`
|
|
633
|
-
: nothing}
|
|
634
|
-
<section id="results">
|
|
635
|
-
<h2 class="results-section-heading">
|
|
636
|
-
<slot name="results-heading"></slot>
|
|
637
|
-
</h2>
|
|
638
|
-
<div id="cb-top-view">
|
|
639
|
-
<slot name="cb-top-slot"></slot>
|
|
640
|
-
</div>
|
|
633
|
+
: nothing}
|
|
634
|
+
<section id="results">
|
|
635
|
+
<h2 class="results-section-heading">
|
|
636
|
+
<slot name="results-heading"></slot>
|
|
637
|
+
</h2>
|
|
638
|
+
<div id="cb-top-view">
|
|
639
|
+
<slot name="cb-top-slot"></slot>
|
|
640
|
+
</div>
|
|
641
641
|
${this.isManageView
|
|
642
642
|
? this.manageBarTemplate
|
|
643
|
-
: this.sortFilterBarTemplate}
|
|
644
|
-
<slot name="cb-results"></slot>
|
|
643
|
+
: this.sortFilterBarTemplate}
|
|
644
|
+
<slot name="cb-results"></slot>
|
|
645
645
|
${this.displayMode === `list-compact` && this.totalResults
|
|
646
646
|
? this.listHeaderTemplate
|
|
647
|
-
: nothing}
|
|
648
|
-
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
649
|
-
</section>
|
|
650
|
-
</div>
|
|
647
|
+
: nothing}
|
|
648
|
+
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
649
|
+
</section>
|
|
650
|
+
</div>
|
|
651
651
|
`;
|
|
652
652
|
}
|
|
653
653
|
/**
|
|
654
654
|
* Template for the infinite scroller widget that contains the result tiles.
|
|
655
655
|
*/
|
|
656
656
|
get infiniteScrollerTemplate() {
|
|
657
|
-
return html `<infinite-scroller
|
|
658
|
-
class=${this.infiniteScrollerClasses}
|
|
659
|
-
itemCount=${this.placeholderType ? 0 : nothing}
|
|
660
|
-
ariaLandmarkLabel="Search results"
|
|
661
|
-
.estimatedCellHeight=${this.estimatedTileHeight}
|
|
662
|
-
.minBufferMarginCells=${this.pageSize}
|
|
663
|
-
.cellProvider=${this}
|
|
664
|
-
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
665
|
-
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
666
|
-
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
657
|
+
return html `<infinite-scroller
|
|
658
|
+
class=${this.infiniteScrollerClasses}
|
|
659
|
+
itemCount=${this.placeholderType ? 0 : nothing}
|
|
660
|
+
ariaLandmarkLabel="Search results"
|
|
661
|
+
.estimatedCellHeight=${this.estimatedTileHeight}
|
|
662
|
+
.minBufferMarginCells=${this.pageSize}
|
|
663
|
+
.cellProvider=${this}
|
|
664
|
+
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
665
|
+
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
666
|
+
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
667
667
|
>${this.displayMode === 'grid'
|
|
668
668
|
? html `<slot name="result-last-tile" slot="result-last-tile"></slot>`
|
|
669
|
-
: nothing}
|
|
669
|
+
: nothing}
|
|
670
670
|
</infinite-scroller>`;
|
|
671
671
|
}
|
|
672
672
|
/**
|
|
@@ -718,29 +718,29 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
718
718
|
}
|
|
719
719
|
// We only show relevance sort if a search query is currently defined
|
|
720
720
|
sortFieldAvailability.relevance = this.isRelevanceSortAvailable;
|
|
721
|
-
return html `
|
|
722
|
-
<sort-filter-bar
|
|
723
|
-
.defaultSortField=${this.defaultSortField}
|
|
724
|
-
.defaultSortDirection=${this.defaultSortDirection}
|
|
725
|
-
.selectedSort=${this.selectedSort}
|
|
726
|
-
.sortDirection=${this.sortDirection}
|
|
727
|
-
.sortFieldAvailability=${sortFieldAvailability}
|
|
728
|
-
.displayMode=${this.displayMode}
|
|
729
|
-
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
730
|
-
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
731
|
-
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
732
|
-
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
733
|
-
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
734
|
-
@sortChanged=${this.userChangedSort}
|
|
735
|
-
@displayModeChanged=${this.displayModeChanged}
|
|
736
|
-
@titleLetterChanged=${this.titleLetterSelected}
|
|
737
|
-
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
738
|
-
>
|
|
739
|
-
${this.tileBlurCheckboxTemplate}
|
|
740
|
-
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
741
|
-
<slot name="sort-options" slot="sort-options"></slot>
|
|
742
|
-
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
743
|
-
</sort-filter-bar>
|
|
721
|
+
return html `
|
|
722
|
+
<sort-filter-bar
|
|
723
|
+
.defaultSortField=${this.defaultSortField}
|
|
724
|
+
.defaultSortDirection=${this.defaultSortDirection}
|
|
725
|
+
.selectedSort=${this.selectedSort}
|
|
726
|
+
.sortDirection=${this.sortDirection}
|
|
727
|
+
.sortFieldAvailability=${sortFieldAvailability}
|
|
728
|
+
.displayMode=${this.displayMode}
|
|
729
|
+
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
730
|
+
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
731
|
+
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
732
|
+
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
733
|
+
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
734
|
+
@sortChanged=${this.userChangedSort}
|
|
735
|
+
@displayModeChanged=${this.displayModeChanged}
|
|
736
|
+
@titleLetterChanged=${this.titleLetterSelected}
|
|
737
|
+
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
738
|
+
>
|
|
739
|
+
${this.tileBlurCheckboxTemplate}
|
|
740
|
+
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
741
|
+
<slot name="sort-options" slot="sort-options"></slot>
|
|
742
|
+
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
743
|
+
</sort-filter-bar>
|
|
744
744
|
`;
|
|
745
745
|
}
|
|
746
746
|
/**
|
|
@@ -751,20 +751,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
751
751
|
// Only show the checkbox for @archive.org users
|
|
752
752
|
if (!this.dataSource.sessionContext?.is_archive_user)
|
|
753
753
|
return nothing;
|
|
754
|
-
return html `
|
|
755
|
-
<label
|
|
756
|
-
id="tile-blur-label"
|
|
757
|
-
for="tile-blur-check"
|
|
758
|
-
slot="sort-options-right"
|
|
759
|
-
>
|
|
760
|
-
${msg('Blurring')}
|
|
761
|
-
<input
|
|
762
|
-
id="tile-blur-check"
|
|
763
|
-
type="checkbox"
|
|
764
|
-
?checked=${!this.shouldSuppressTileBlurring}
|
|
765
|
-
@change=${this.tileBlurCheckboxChanged}
|
|
766
|
-
/>
|
|
767
|
-
</label>
|
|
754
|
+
return html `
|
|
755
|
+
<label
|
|
756
|
+
id="tile-blur-label"
|
|
757
|
+
for="tile-blur-check"
|
|
758
|
+
slot="sort-options-right"
|
|
759
|
+
>
|
|
760
|
+
${msg('Blurring')}
|
|
761
|
+
<input
|
|
762
|
+
id="tile-blur-check"
|
|
763
|
+
type="checkbox"
|
|
764
|
+
?checked=${!this.shouldSuppressTileBlurring}
|
|
765
|
+
@change=${this.tileBlurCheckboxChanged}
|
|
766
|
+
/>
|
|
767
|
+
</label>
|
|
768
768
|
`;
|
|
769
769
|
}
|
|
770
770
|
/**
|
|
@@ -772,27 +772,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
772
772
|
* showing the management view. This generally replaces the sort bar when present.
|
|
773
773
|
*/
|
|
774
774
|
get manageBarTemplate() {
|
|
775
|
-
return html `
|
|
776
|
-
<manage-bar
|
|
777
|
-
.label=${this.manageViewLabel}
|
|
778
|
-
.modalManager=${this.modalManager}
|
|
779
|
-
.selectedItems=${this.dataSource.checkedTileModels}
|
|
780
|
-
.profileElement=${this.profileElement}
|
|
781
|
-
showSelectAll
|
|
782
|
-
showUnselectAll
|
|
783
|
-
?showItemManageButton=${this.pageContext === 'search'}
|
|
784
|
-
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
785
|
-
@removeItems=${this.handleRemoveItems}
|
|
786
|
-
@manageItems=${this.handleManageItems}
|
|
787
|
-
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
788
|
-
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
775
|
+
return html `
|
|
776
|
+
<manage-bar
|
|
777
|
+
.label=${this.manageViewLabel}
|
|
778
|
+
.modalManager=${this.modalManager}
|
|
779
|
+
.selectedItems=${this.dataSource.checkedTileModels}
|
|
780
|
+
.profileElement=${this.profileElement}
|
|
781
|
+
showSelectAll
|
|
782
|
+
showUnselectAll
|
|
783
|
+
?showItemManageButton=${this.pageContext === 'search'}
|
|
784
|
+
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
785
|
+
@removeItems=${this.handleRemoveItems}
|
|
786
|
+
@manageItems=${this.handleManageItems}
|
|
787
|
+
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
788
|
+
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
789
789
|
@cancel=${() => {
|
|
790
790
|
this.isManageView = false;
|
|
791
791
|
this.dataSource.uncheckAllTiles();
|
|
792
792
|
if (this.searchResultsLoading)
|
|
793
793
|
this.dataSource.resetPages();
|
|
794
|
-
}}
|
|
795
|
-
></manage-bar>
|
|
794
|
+
}}
|
|
795
|
+
></manage-bar>
|
|
796
796
|
`;
|
|
797
797
|
}
|
|
798
798
|
/**
|
|
@@ -1027,15 +1027,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1027
1027
|
label: target.open ? 'open' : 'closed',
|
|
1028
1028
|
});
|
|
1029
1029
|
};
|
|
1030
|
-
return html `
|
|
1031
|
-
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
1032
|
-
<summary>
|
|
1033
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
1034
|
-
<h2>${msg('Filters')}</h2>
|
|
1035
|
-
${this.clearFiltersBtnTemplate(true)}
|
|
1036
|
-
</summary>
|
|
1037
|
-
${this.facetsTemplate}
|
|
1038
|
-
</details>
|
|
1030
|
+
return html `
|
|
1031
|
+
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
1032
|
+
<summary>
|
|
1033
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
1034
|
+
<h2>${msg('Filters')}</h2>
|
|
1035
|
+
${this.clearFiltersBtnTemplate(true)}
|
|
1036
|
+
</summary>
|
|
1037
|
+
${this.facetsTemplate}
|
|
1038
|
+
</details>
|
|
1039
1039
|
`;
|
|
1040
1040
|
}
|
|
1041
1041
|
/**
|
|
@@ -1119,50 +1119,50 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1119
1119
|
const filterByNetworkLabel = msg('Filter by Network');
|
|
1120
1120
|
const filterByShowLabel = msg('Filter by Show');
|
|
1121
1121
|
const shows = showEntries.map(([show]) => show);
|
|
1122
|
-
const loadingIndicator = html `
|
|
1123
|
-
<span slot="empty-options">
|
|
1124
|
-
<img src="https://archive.org/images/loading.gif" />
|
|
1125
|
-
</span>
|
|
1122
|
+
const loadingIndicator = html `
|
|
1123
|
+
<span slot="empty-options">
|
|
1124
|
+
<img src="https://archive.org/images/loading.gif" />
|
|
1125
|
+
</span>
|
|
1126
1126
|
`;
|
|
1127
|
-
const errorMessage = html `
|
|
1128
|
-
<span slot="empty-options">
|
|
1129
|
-
${msg('Unable to fetch options, try again later')}
|
|
1130
|
-
</span>
|
|
1127
|
+
const errorMessage = html `
|
|
1128
|
+
<span slot="empty-options">
|
|
1129
|
+
${msg('Unable to fetch options, try again later')}
|
|
1130
|
+
</span>
|
|
1131
1131
|
`;
|
|
1132
|
-
return html `
|
|
1133
|
-
<div id="tv-filters" slot="facets-top">
|
|
1134
|
-
<ia-combo-box
|
|
1135
|
-
id="tv-networks"
|
|
1136
|
-
class="tv-filter-dropdown"
|
|
1137
|
-
placeholder=${filterByNetworkLabel}
|
|
1138
|
-
clearable
|
|
1139
|
-
wrap-arrow-keys
|
|
1140
|
-
sort
|
|
1141
|
-
.options=${networks.map((n, i) => ({ id: `network-${i}`, text: n }))}
|
|
1142
|
-
@toggle=${this.tvDropdownToggled}
|
|
1143
|
-
@change=${this.networksDropdownChanged}
|
|
1144
|
-
>
|
|
1145
|
-
<span slot="label" class="sr-only">${filterByNetworkLabel}</span>
|
|
1146
|
-
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1147
|
-
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1148
|
-
</ia-combo-box>
|
|
1149
|
-
<ia-combo-box
|
|
1150
|
-
id="tv-shows"
|
|
1151
|
-
class="tv-filter-dropdown"
|
|
1152
|
-
placeholder=${filterByShowLabel}
|
|
1153
|
-
max-autocomplete-entries="500"
|
|
1154
|
-
clearable
|
|
1155
|
-
wrap-arrow-keys
|
|
1156
|
-
sort
|
|
1157
|
-
.options=${shows.map((s, i) => ({ id: `show-${i}`, text: s }))}
|
|
1158
|
-
@toggle=${this.tvDropdownToggled}
|
|
1159
|
-
@change=${this.showsDropdownChanged}
|
|
1160
|
-
>
|
|
1161
|
-
<span slot="label" class="sr-only">${filterByShowLabel}</span>
|
|
1162
|
-
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1163
|
-
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1164
|
-
</ia-combo-box>
|
|
1165
|
-
</div>
|
|
1132
|
+
return html `
|
|
1133
|
+
<div id="tv-filters" slot="facets-top">
|
|
1134
|
+
<ia-combo-box
|
|
1135
|
+
id="tv-networks"
|
|
1136
|
+
class="tv-filter-dropdown"
|
|
1137
|
+
placeholder=${filterByNetworkLabel}
|
|
1138
|
+
clearable
|
|
1139
|
+
wrap-arrow-keys
|
|
1140
|
+
sort
|
|
1141
|
+
.options=${networks.map((n, i) => ({ id: `network-${i}`, text: n }))}
|
|
1142
|
+
@toggle=${this.tvDropdownToggled}
|
|
1143
|
+
@change=${this.networksDropdownChanged}
|
|
1144
|
+
>
|
|
1145
|
+
<span slot="label" class="sr-only">${filterByNetworkLabel}</span>
|
|
1146
|
+
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1147
|
+
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1148
|
+
</ia-combo-box>
|
|
1149
|
+
<ia-combo-box
|
|
1150
|
+
id="tv-shows"
|
|
1151
|
+
class="tv-filter-dropdown"
|
|
1152
|
+
placeholder=${filterByShowLabel}
|
|
1153
|
+
max-autocomplete-entries="500"
|
|
1154
|
+
clearable
|
|
1155
|
+
wrap-arrow-keys
|
|
1156
|
+
sort
|
|
1157
|
+
.options=${shows.map((s, i) => ({ id: `show-${i}`, text: s }))}
|
|
1158
|
+
@toggle=${this.tvDropdownToggled}
|
|
1159
|
+
@change=${this.showsDropdownChanged}
|
|
1160
|
+
>
|
|
1161
|
+
<span slot="label" class="sr-only">${filterByShowLabel}</span>
|
|
1162
|
+
${this.tvMapsLoading ? loadingIndicator : nothing}
|
|
1163
|
+
${this.tvMapsErrored ? errorMessage : nothing}
|
|
1164
|
+
</ia-combo-box>
|
|
1165
|
+
</div>
|
|
1166
1166
|
`;
|
|
1167
1167
|
}
|
|
1168
1168
|
/**
|
|
@@ -1172,10 +1172,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1172
1172
|
if (FACETLESS_PAGE_ELEMENTS.includes(this.profileElement))
|
|
1173
1173
|
return nothing;
|
|
1174
1174
|
if (this.facetLoadStrategy === 'off') {
|
|
1175
|
-
return html `
|
|
1176
|
-
<p class="facets-message">
|
|
1177
|
-
${msg('Facets are temporarily unavailable.')}
|
|
1178
|
-
</p>
|
|
1175
|
+
return html `
|
|
1176
|
+
<p class="facets-message">
|
|
1177
|
+
${msg('Facets are temporarily unavailable.')}
|
|
1178
|
+
</p>
|
|
1179
1179
|
`;
|
|
1180
1180
|
}
|
|
1181
1181
|
// We switch to TV facet ordering & date picker if we are in a TV collection or showing TV search results
|
|
@@ -1184,46 +1184,46 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1184
1184
|
const facetDisplayOrder = shouldUseTvInterface
|
|
1185
1185
|
? tvFacetDisplayOrder
|
|
1186
1186
|
: defaultFacetDisplayOrder;
|
|
1187
|
-
const facets = html `
|
|
1188
|
-
<collection-facets
|
|
1189
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1190
|
-
.parentCollections=${this.dataSource.parentCollections}
|
|
1191
|
-
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1192
|
-
.searchService=${this.searchService}
|
|
1193
|
-
.featureFeedbackService=${this.featureFeedbackService}
|
|
1194
|
-
.recaptchaManager=${this.recaptchaManager}
|
|
1195
|
-
.resizeObserver=${this.resizeObserver}
|
|
1196
|
-
.searchType=${this.searchType}
|
|
1197
|
-
.aggregations=${this.dataSource.aggregations}
|
|
1198
|
-
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1199
|
-
.minSelectedDate=${this.minSelectedDate}
|
|
1200
|
-
.maxSelectedDate=${this.maxSelectedDate}
|
|
1201
|
-
.selectedFacets=${this.selectedFacets}
|
|
1202
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1203
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1204
|
-
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1205
|
-
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1206
|
-
.allowExpandingDatePicker=${!this.mobileView}
|
|
1207
|
-
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1208
|
-
.contentWidth=${this.contentWidth}
|
|
1209
|
-
.query=${this.baseQuery}
|
|
1210
|
-
.identifiers=${this.identifiers}
|
|
1211
|
-
.filterMap=${this.dataSource.filterMap}
|
|
1212
|
-
.isManageView=${this.isManageView}
|
|
1213
|
-
.modalManager=${this.modalManager}
|
|
1214
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
1215
|
-
.facetDisplayOrder=${facetDisplayOrder}
|
|
1216
|
-
.isTvSearch=${shouldUseTvInterface}
|
|
1217
|
-
?collapsableFacets=${this.mobileView}
|
|
1218
|
-
?facetsLoading=${this.facetsLoading}
|
|
1219
|
-
?histogramAggregationLoading=${this.facetsLoading}
|
|
1220
|
-
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1221
|
-
@facetClick=${this.facetClickHandler}
|
|
1222
|
-
@facetsChanged=${this.facetsChanged}
|
|
1223
|
-
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1224
|
-
>
|
|
1225
|
-
${this.tvDropdownFiltersTemplate}
|
|
1226
|
-
</collection-facets>
|
|
1187
|
+
const facets = html `
|
|
1188
|
+
<collection-facets
|
|
1189
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1190
|
+
.parentCollections=${this.dataSource.parentCollections}
|
|
1191
|
+
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1192
|
+
.searchService=${this.searchService}
|
|
1193
|
+
.featureFeedbackService=${this.featureFeedbackService}
|
|
1194
|
+
.recaptchaManager=${this.recaptchaManager}
|
|
1195
|
+
.resizeObserver=${this.resizeObserver}
|
|
1196
|
+
.searchType=${this.searchType}
|
|
1197
|
+
.aggregations=${this.dataSource.aggregations}
|
|
1198
|
+
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1199
|
+
.minSelectedDate=${this.minSelectedDate}
|
|
1200
|
+
.maxSelectedDate=${this.maxSelectedDate}
|
|
1201
|
+
.selectedFacets=${this.selectedFacets}
|
|
1202
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1203
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1204
|
+
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1205
|
+
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1206
|
+
.allowExpandingDatePicker=${!this.mobileView}
|
|
1207
|
+
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1208
|
+
.contentWidth=${this.contentWidth}
|
|
1209
|
+
.query=${this.baseQuery}
|
|
1210
|
+
.identifiers=${this.identifiers}
|
|
1211
|
+
.filterMap=${this.dataSource.filterMap}
|
|
1212
|
+
.isManageView=${this.isManageView}
|
|
1213
|
+
.modalManager=${this.modalManager}
|
|
1214
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
1215
|
+
.facetDisplayOrder=${facetDisplayOrder}
|
|
1216
|
+
.isTvSearch=${shouldUseTvInterface}
|
|
1217
|
+
?collapsableFacets=${this.mobileView}
|
|
1218
|
+
?facetsLoading=${this.facetsLoading}
|
|
1219
|
+
?histogramAggregationLoading=${this.facetsLoading}
|
|
1220
|
+
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1221
|
+
@facetClick=${this.facetClickHandler}
|
|
1222
|
+
@facetsChanged=${this.facetsChanged}
|
|
1223
|
+
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1224
|
+
>
|
|
1225
|
+
${this.tvDropdownFiltersTemplate}
|
|
1226
|
+
</collection-facets>
|
|
1227
1227
|
`;
|
|
1228
1228
|
// If we are using one of the opt-in facet load strategies, we may need to wrap the
|
|
1229
1229
|
// desktop view facets in a <details> widget so that patrons can opt into loading them.
|
|
@@ -1231,20 +1231,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1231
1231
|
const showDesktopOptInWidget = this.facetLoadStrategy === 'opt-in' ||
|
|
1232
1232
|
(this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
|
|
1233
1233
|
if (showDesktopOptInWidget && !this.mobileView) {
|
|
1234
|
-
return html `
|
|
1235
|
-
<details
|
|
1236
|
-
class="desktop-facets-dropdown"
|
|
1234
|
+
return html `
|
|
1235
|
+
<details
|
|
1236
|
+
class="desktop-facets-dropdown"
|
|
1237
1237
|
@toggle=${(e) => {
|
|
1238
1238
|
const target = e.target;
|
|
1239
1239
|
this.collapsibleFacetsVisible = target.open;
|
|
1240
|
-
}}
|
|
1241
|
-
>
|
|
1242
|
-
<summary>
|
|
1243
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
1244
|
-
<h2>${msg('Filters')}</h2>
|
|
1245
|
-
</summary>
|
|
1246
|
-
${facets}
|
|
1247
|
-
</details>
|
|
1240
|
+
}}
|
|
1241
|
+
>
|
|
1242
|
+
<summary>
|
|
1243
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
1244
|
+
<h2>${msg('Filters')}</h2>
|
|
1245
|
+
</summary>
|
|
1246
|
+
${facets}
|
|
1247
|
+
</details>
|
|
1248
1248
|
`;
|
|
1249
1249
|
}
|
|
1250
1250
|
// Otherwise, just render the facets component bare
|
|
@@ -1264,34 +1264,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1264
1264
|
mobile,
|
|
1265
1265
|
});
|
|
1266
1266
|
const buttonText = mobile ? 'Clear all' : 'Clear all filters';
|
|
1267
|
-
return html `
|
|
1268
|
-
<div class="clear-filters-btn-row">
|
|
1267
|
+
return html `
|
|
1268
|
+
<div class="clear-filters-btn-row">
|
|
1269
1269
|
${mobile
|
|
1270
1270
|
? html `<span class="clear-filters-btn-separator"> </span>`
|
|
1271
|
-
: nothing}
|
|
1272
|
-
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1273
|
-
${buttonText}
|
|
1274
|
-
</button>
|
|
1275
|
-
</div>
|
|
1271
|
+
: nothing}
|
|
1272
|
+
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1273
|
+
${buttonText}
|
|
1274
|
+
</button>
|
|
1275
|
+
</div>
|
|
1276
1276
|
`;
|
|
1277
1277
|
}
|
|
1278
1278
|
/**
|
|
1279
1279
|
* Template for the table header content that appears atop the compact list view.
|
|
1280
1280
|
*/
|
|
1281
1281
|
get listHeaderTemplate() {
|
|
1282
|
-
return html `
|
|
1283
|
-
<div id="list-header">
|
|
1284
|
-
<tile-dispatcher
|
|
1285
|
-
.tileDisplayMode=${'list-header'}
|
|
1286
|
-
.resizeObserver=${this.resizeObserver}
|
|
1287
|
-
.sortParam=${this.sortParam}
|
|
1288
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1289
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1290
|
-
.loggedIn=${this.loggedIn}
|
|
1291
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1292
|
-
>
|
|
1293
|
-
</tile-dispatcher>
|
|
1294
|
-
</div>
|
|
1282
|
+
return html `
|
|
1283
|
+
<div id="list-header">
|
|
1284
|
+
<tile-dispatcher
|
|
1285
|
+
.tileDisplayMode=${'list-header'}
|
|
1286
|
+
.resizeObserver=${this.resizeObserver}
|
|
1287
|
+
.sortParam=${this.sortParam}
|
|
1288
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1289
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1290
|
+
.loggedIn=${this.loggedIn}
|
|
1291
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1292
|
+
>
|
|
1293
|
+
</tile-dispatcher>
|
|
1294
|
+
</div>
|
|
1295
1295
|
`;
|
|
1296
1296
|
}
|
|
1297
1297
|
/**
|
|
@@ -2049,28 +2049,28 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
2049
2049
|
const isRadioSearch = this.searchType === SearchType.RADIO;
|
|
2050
2050
|
const { isTVCollection, isRadioCollection } = this;
|
|
2051
2051
|
const shouldUseLocalTime = isTVSearch || isRadioSearch || isTVCollection || isRadioCollection;
|
|
2052
|
-
return html `
|
|
2053
|
-
<tile-dispatcher
|
|
2054
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
2055
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
2056
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
2057
|
-
.model=${model}
|
|
2058
|
-
.tileDisplayMode=${this.displayMode}
|
|
2059
|
-
.resizeObserver=${this.resizeObserver}
|
|
2060
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
2061
|
-
.sortParam=${this.sortParam}
|
|
2062
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
2063
|
-
.creatorFilter=${this.selectedCreatorFilter}
|
|
2064
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
2065
|
-
.loggedIn=${this.loggedIn}
|
|
2066
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
2067
|
-
.isManageView=${this.isManageView}
|
|
2068
|
-
?showTvClips=${isTVSearch || isTVCollection}
|
|
2069
|
-
?enableHoverPane=${true}
|
|
2070
|
-
?useLocalTime=${shouldUseLocalTime}
|
|
2071
|
-
@resultSelected=${(e) => this.resultSelected(e)}
|
|
2072
|
-
>
|
|
2073
|
-
</tile-dispatcher>
|
|
2052
|
+
return html `
|
|
2053
|
+
<tile-dispatcher
|
|
2054
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
2055
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
2056
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
2057
|
+
.model=${model}
|
|
2058
|
+
.tileDisplayMode=${this.displayMode}
|
|
2059
|
+
.resizeObserver=${this.resizeObserver}
|
|
2060
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
2061
|
+
.sortParam=${this.sortParam}
|
|
2062
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
2063
|
+
.creatorFilter=${this.selectedCreatorFilter}
|
|
2064
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
2065
|
+
.loggedIn=${this.loggedIn}
|
|
2066
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
2067
|
+
.isManageView=${this.isManageView}
|
|
2068
|
+
?showTvClips=${isTVSearch || isTVCollection}
|
|
2069
|
+
?enableHoverPane=${true}
|
|
2070
|
+
?useLocalTime=${shouldUseLocalTime}
|
|
2071
|
+
@resultSelected=${(e) => this.resultSelected(e)}
|
|
2072
|
+
>
|
|
2073
|
+
</tile-dispatcher>
|
|
2074
2074
|
`;
|
|
2075
2075
|
}
|
|
2076
2076
|
/**
|
|
@@ -2105,479 +2105,479 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
2105
2105
|
static get styles() {
|
|
2106
2106
|
return [
|
|
2107
2107
|
srOnlyStyle,
|
|
2108
|
-
css `
|
|
2109
|
-
:host {
|
|
2110
|
-
display: block;
|
|
2111
|
-
--leftColumnWidth: 18rem;
|
|
2112
|
-
--leftColumnPaddingTop: 2rem;
|
|
2113
|
-
--leftColumnPaddingRight: 2.5rem;
|
|
2114
|
-
}
|
|
2115
|
-
|
|
2116
|
-
#facet-top-view {
|
|
2117
|
-
display: flex;
|
|
2118
|
-
}
|
|
2119
|
-
|
|
2120
|
-
/**
|
|
2121
|
-
* When page width resizes from desktop to mobile, use this class to
|
|
2122
|
-
* disable expand/collapse transition when loading.
|
|
2123
|
-
*/
|
|
2124
|
-
.preload * {
|
|
2125
|
-
transition: none !important;
|
|
2126
|
-
-webkit-transition: none !important;
|
|
2127
|
-
-moz-transition: none !important;
|
|
2128
|
-
-ms-transition: none !important;
|
|
2129
|
-
-o-transition: none !important;
|
|
2130
|
-
}
|
|
2131
|
-
|
|
2132
|
-
#content-container {
|
|
2133
|
-
display: flex;
|
|
2134
|
-
}
|
|
2135
|
-
|
|
2136
|
-
empty-placeholder {
|
|
2137
|
-
margin-top: var(--placeholderMarginTop, 0);
|
|
2138
|
-
}
|
|
2139
|
-
|
|
2140
|
-
.collapser-icon {
|
|
2141
|
-
display: inline-block;
|
|
2142
|
-
}
|
|
2143
|
-
|
|
2144
|
-
.collapser-icon svg {
|
|
2145
|
-
display: inline-block;
|
|
2146
|
-
width: 12px;
|
|
2147
|
-
height: 12px;
|
|
2148
|
-
transition: transform 0.2s ease-out;
|
|
2149
|
-
}
|
|
2150
|
-
|
|
2151
|
-
#mobile-filter-collapse {
|
|
2152
|
-
width: 100%;
|
|
2153
|
-
}
|
|
2154
|
-
|
|
2155
|
-
#mobile-filter-collapse > summary {
|
|
2156
|
-
cursor: pointer;
|
|
2157
|
-
list-style: none;
|
|
2158
|
-
}
|
|
2159
|
-
|
|
2160
|
-
#mobile-filter-collapse[open] > summary {
|
|
2161
|
-
margin-bottom: 10px;
|
|
2162
|
-
}
|
|
2163
|
-
|
|
2164
|
-
#mobile-filter-collapse h2 {
|
|
2165
|
-
display: inline-block;
|
|
2166
|
-
margin: 0;
|
|
2167
|
-
font-size: 2rem;
|
|
2168
|
-
}
|
|
2169
|
-
|
|
2170
|
-
#mobile-filter-collapse[open] svg {
|
|
2171
|
-
transform: rotate(90deg);
|
|
2172
|
-
}
|
|
2173
|
-
|
|
2174
|
-
#content-container.mobile {
|
|
2175
|
-
display: block;
|
|
2176
|
-
}
|
|
2177
|
-
|
|
2178
|
-
#right-column {
|
|
2179
|
-
flex: 1;
|
|
2180
|
-
position: relative;
|
|
2181
|
-
min-height: 90vh;
|
|
2182
|
-
border-right: 1px solid rgb(232, 232, 232);
|
|
2183
|
-
margin-top: var(--rightColumnMarginTop, 0);
|
|
2184
|
-
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2185
|
-
background: #fff;
|
|
2186
|
-
}
|
|
2187
|
-
|
|
2188
|
-
#left-column:not([hidden]) + #right-column {
|
|
2189
|
-
border-left: 1px solid rgb(232, 232, 232);
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2192
|
-
#right-column.smart-results-spacing {
|
|
2193
|
-
padding-top: 0.5rem;
|
|
2194
|
-
border-right: none;
|
|
2195
|
-
background: transparent;
|
|
2196
|
-
min-width: 0;
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
|
-
#results {
|
|
2200
|
-
background: #fff;
|
|
2201
|
-
padding-left: 1rem;
|
|
2202
|
-
padding-right: 1rem;
|
|
2203
|
-
}
|
|
2204
|
-
|
|
2205
|
-
#right-column.smart-results-spacing #results {
|
|
2206
|
-
border-radius: 10px 10px 0px 0px;
|
|
2207
|
-
padding-top: 0.5rem;
|
|
2208
|
-
margin-top: 1rem;
|
|
2209
|
-
}
|
|
2210
|
-
|
|
2211
|
-
.mobile #right-column {
|
|
2212
|
-
border-left: none;
|
|
2213
|
-
}
|
|
2214
|
-
|
|
2215
|
-
.mobile #results {
|
|
2216
|
-
padding: 5px 5px 0;
|
|
2217
|
-
}
|
|
2218
|
-
|
|
2219
|
-
#left-column {
|
|
2220
|
-
width: var(--leftColumnWidth, 18rem);
|
|
2221
|
-
/* Prevents Safari from shrinking col at first draw */
|
|
2222
|
-
min-width: var(--leftColumnWidth, 18rem);
|
|
2223
|
-
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2224
|
-
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2225
|
-
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2226
|
-
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2227
|
-
z-index: 1;
|
|
2228
|
-
}
|
|
2229
|
-
|
|
2230
|
-
.desktop #left-column {
|
|
2231
|
-
top: 0;
|
|
2232
|
-
position: sticky;
|
|
2233
|
-
height: calc(100vh - 2rem);
|
|
2234
|
-
max-height: calc(100vh - 2rem);
|
|
2235
|
-
overflow-x: hidden;
|
|
2236
|
-
overflow-y: scroll;
|
|
2237
|
-
|
|
2238
|
-
/*
|
|
2239
|
-
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2240
|
-
* does at least give us a tiny bit of control over width & color.
|
|
2241
|
-
*/
|
|
2242
|
-
scrollbar-width: thin;
|
|
2243
|
-
scrollbar-color: transparent transparent;
|
|
2244
|
-
}
|
|
2245
|
-
.desktop #left-column:hover {
|
|
2246
|
-
scrollbar-color: auto;
|
|
2247
|
-
}
|
|
2248
|
-
.desktop #left-column::-webkit-scrollbar {
|
|
2249
|
-
appearance: none;
|
|
2250
|
-
width: 6px;
|
|
2251
|
-
}
|
|
2252
|
-
.desktop #left-column::-webkit-scrollbar-button {
|
|
2253
|
-
height: 3px;
|
|
2254
|
-
background: transparent;
|
|
2255
|
-
}
|
|
2256
|
-
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2257
|
-
background: transparent;
|
|
2258
|
-
}
|
|
2259
|
-
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2260
|
-
border-radius: 4px;
|
|
2261
|
-
}
|
|
2262
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2263
|
-
background: rgba(0, 0, 0, 0.15);
|
|
2264
|
-
}
|
|
2265
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2266
|
-
background: rgba(0, 0, 0, 0.2);
|
|
2267
|
-
}
|
|
2268
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2269
|
-
background: rgba(0, 0, 0, 0.3);
|
|
2270
|
-
}
|
|
2271
|
-
|
|
2272
|
-
#facets-bottom-fade {
|
|
2273
|
-
background: linear-gradient(
|
|
2274
|
-
to bottom,
|
|
2275
|
-
#fbfbfd00 0%,
|
|
2276
|
-
#fbfbfdc0 50%,
|
|
2277
|
-
#fbfbfd 80%,
|
|
2278
|
-
#fbfbfd 100%
|
|
2279
|
-
);
|
|
2280
|
-
position: fixed;
|
|
2281
|
-
bottom: 0;
|
|
2282
|
-
height: 50px;
|
|
2283
|
-
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2284
|
-
width: calc(
|
|
2285
|
-
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2286
|
-
);
|
|
2287
|
-
z-index: 2;
|
|
2288
|
-
pointer-events: none;
|
|
2289
|
-
transition: height 0.1s ease;
|
|
2290
|
-
}
|
|
2291
|
-
#facets-bottom-fade.hidden {
|
|
2292
|
-
height: 0;
|
|
2293
|
-
}
|
|
2294
|
-
|
|
2295
|
-
.facets-message {
|
|
2296
|
-
font-size: 1.4rem;
|
|
2297
|
-
}
|
|
2298
|
-
|
|
2299
|
-
.desktop-facets-dropdown > summary {
|
|
2300
|
-
cursor: pointer;
|
|
2301
|
-
list-style: none;
|
|
2302
|
-
}
|
|
2303
|
-
|
|
2304
|
-
.desktop-facets-dropdown h2 {
|
|
2305
|
-
display: inline-block;
|
|
2306
|
-
margin: 0;
|
|
2307
|
-
font-size: 1.6rem;
|
|
2308
|
-
}
|
|
2309
|
-
|
|
2310
|
-
.desktop-facets-dropdown[open] > summary {
|
|
2311
|
-
margin-bottom: 10px;
|
|
2312
|
-
}
|
|
2313
|
-
|
|
2314
|
-
.desktop-facets-dropdown[open] svg {
|
|
2315
|
-
transform: rotate(90deg);
|
|
2316
|
-
}
|
|
2317
|
-
|
|
2318
|
-
.desktop #left-column-scroll-sentinel {
|
|
2319
|
-
width: 1px;
|
|
2320
|
-
height: 100vh;
|
|
2321
|
-
background: transparent;
|
|
2322
|
-
}
|
|
2323
|
-
|
|
2324
|
-
.desktop #facets-scroll-sentinel {
|
|
2325
|
-
width: 1px;
|
|
2326
|
-
height: 1px;
|
|
2327
|
-
background: transparent;
|
|
2328
|
-
}
|
|
2329
|
-
|
|
2330
|
-
#facets-header-container {
|
|
2331
|
-
display: flex;
|
|
2332
|
-
justify-content: space-between;
|
|
2333
|
-
align-items: flex-start;
|
|
2334
|
-
clear: both;
|
|
2335
|
-
}
|
|
2336
|
-
|
|
2337
|
-
.desktop #facets-header-container {
|
|
2338
|
-
flex-wrap: wrap;
|
|
2339
|
-
}
|
|
2340
|
-
|
|
2341
|
-
.mobile #left-column {
|
|
2342
|
-
width: 100%;
|
|
2343
|
-
min-width: 0;
|
|
2344
|
-
padding: 5px 0;
|
|
2345
|
-
border: 0;
|
|
2346
|
-
}
|
|
2347
|
-
|
|
2348
|
-
.clear-filters-btn-row {
|
|
2349
|
-
display: inline-block;
|
|
2350
|
-
}
|
|
2351
|
-
|
|
2352
|
-
.desktop .clear-filters-btn-row {
|
|
2353
|
-
width: 100%;
|
|
2354
|
-
}
|
|
2355
|
-
|
|
2356
|
-
.clear-filters-btn {
|
|
2357
|
-
display: inline-block;
|
|
2358
|
-
appearance: none;
|
|
2359
|
-
margin: 0;
|
|
2360
|
-
padding: 0;
|
|
2361
|
-
border: 0;
|
|
2362
|
-
background: none;
|
|
2363
|
-
color: var(--ia-theme-link-color);
|
|
2364
|
-
font-size: 1.4rem;
|
|
2365
|
-
font-family: inherit;
|
|
2366
|
-
cursor: pointer;
|
|
2367
|
-
}
|
|
2368
|
-
|
|
2369
|
-
.clear-filters-btn:hover {
|
|
2370
|
-
text-decoration: underline;
|
|
2371
|
-
}
|
|
2372
|
-
|
|
2373
|
-
.clear-filters-btn-separator {
|
|
2374
|
-
display: inline-block;
|
|
2375
|
-
margin-left: 5px;
|
|
2376
|
-
border-left: 1px solid #2c2c2c;
|
|
2377
|
-
font-size: 1.4rem;
|
|
2378
|
-
line-height: 1.3rem;
|
|
2379
|
-
}
|
|
2380
|
-
|
|
2381
|
-
#tv-filters {
|
|
2382
|
-
margin-bottom: 15px;
|
|
2383
|
-
}
|
|
2384
|
-
|
|
2385
|
-
#tv-shows {
|
|
2386
|
-
--comboBoxListWidth: 300px;
|
|
2387
|
-
}
|
|
2388
|
-
|
|
2389
|
-
.tv-filter-dropdown {
|
|
2390
|
-
display: block;
|
|
2391
|
-
font-size: 14px;
|
|
2392
|
-
margin-left: 1px;
|
|
2393
|
-
margin-bottom: 5px;
|
|
2394
|
-
}
|
|
2395
|
-
|
|
2396
|
-
.tv-filter-dropdown::part(combo-box) {
|
|
2397
|
-
outline-offset: 1px;
|
|
2398
|
-
}
|
|
2399
|
-
|
|
2400
|
-
.tv-filter-dropdown::part(option) {
|
|
2401
|
-
line-height: 1.1;
|
|
2402
|
-
padding: 7px;
|
|
2403
|
-
}
|
|
2404
|
-
|
|
2405
|
-
.tv-filter-dropdown::part(clear-button) {
|
|
2406
|
-
flex: 0 0 26px;
|
|
2407
|
-
--combo-box-clear-icon-size: 14px;
|
|
2408
|
-
}
|
|
2409
|
-
|
|
2410
|
-
.tv-filter-dropdown::part(icon) {
|
|
2411
|
-
width: 1.4rem;
|
|
2412
|
-
height: 1.4rem;
|
|
2413
|
-
}
|
|
2414
|
-
|
|
2415
|
-
#facets-container {
|
|
2416
|
-
position: relative;
|
|
2417
|
-
max-height: 0;
|
|
2418
|
-
transition: max-height 0.2s ease-in-out;
|
|
2419
|
-
z-index: 1;
|
|
2420
|
-
margin-top: var(--facetsContainerMarginTop, 3rem);
|
|
2421
|
-
padding-bottom: 2rem;
|
|
2422
|
-
}
|
|
2423
|
-
|
|
2424
|
-
.desktop #facets-container {
|
|
2425
|
-
width: 18rem;
|
|
2426
|
-
}
|
|
2427
|
-
|
|
2428
|
-
.mobile #facets-container {
|
|
2429
|
-
overflow: hidden;
|
|
2430
|
-
padding-bottom: 0;
|
|
2431
|
-
padding-left: 10px;
|
|
2432
|
-
padding-right: 10px;
|
|
2433
|
-
}
|
|
2434
|
-
|
|
2435
|
-
#facets-container.expanded {
|
|
2436
|
-
max-height: 2000px;
|
|
2437
|
-
}
|
|
2438
|
-
|
|
2439
|
-
.results-section-heading {
|
|
2440
|
-
margin: 0.5rem 0.3rem;
|
|
2441
|
-
font-size: 2rem;
|
|
2442
|
-
line-height: 25px;
|
|
2443
|
-
}
|
|
2444
|
-
|
|
2445
|
-
#results-total {
|
|
2446
|
-
display: flex;
|
|
2447
|
-
align-items: baseline;
|
|
2448
|
-
}
|
|
2449
|
-
|
|
2450
|
-
#results-total:not(.filtered) {
|
|
2451
|
-
padding-bottom: 2rem;
|
|
2452
|
-
}
|
|
2453
|
-
|
|
2454
|
-
.mobile #results-total {
|
|
2455
|
-
position: absolute;
|
|
2456
|
-
right: 10px;
|
|
2457
|
-
}
|
|
2458
|
-
|
|
2459
|
-
#big-results-count {
|
|
2460
|
-
font-size: 2.4rem;
|
|
2461
|
-
font-weight: 500;
|
|
2462
|
-
margin-right: 5px;
|
|
2463
|
-
}
|
|
2464
|
-
|
|
2465
|
-
.mobile #big-results-count {
|
|
2466
|
-
font-size: 2rem;
|
|
2467
|
-
}
|
|
2468
|
-
|
|
2469
|
-
#big-results-label {
|
|
2470
|
-
font-size: 1.4rem;
|
|
2471
|
-
font-weight: 200;
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
|
-
#list-header {
|
|
2475
|
-
max-height: 4.2rem;
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
.loading-cover {
|
|
2479
|
-
position: absolute;
|
|
2480
|
-
top: 0;
|
|
2481
|
-
left: 0;
|
|
2482
|
-
width: 100%;
|
|
2483
|
-
height: 100%;
|
|
2484
|
-
display: flex;
|
|
2485
|
-
justify-content: center;
|
|
2486
|
-
z-index: 1;
|
|
2487
|
-
padding-top: 50px;
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
#tile-blur-label {
|
|
2491
|
-
display: flex;
|
|
2492
|
-
align-items: center;
|
|
2493
|
-
column-gap: 5px;
|
|
2494
|
-
}
|
|
2495
|
-
|
|
2496
|
-
#tile-blur-check {
|
|
2497
|
-
margin: 0 5px 0 0;
|
|
2498
|
-
width: 15px;
|
|
2499
|
-
}
|
|
2500
|
-
|
|
2501
|
-
circular-activity-indicator {
|
|
2502
|
-
width: 30px;
|
|
2503
|
-
height: 30px;
|
|
2504
|
-
}
|
|
2505
|
-
|
|
2506
|
-
sort-filter-bar {
|
|
2507
|
-
display: block;
|
|
2508
|
-
margin-bottom: 4rem;
|
|
2509
|
-
}
|
|
2510
|
-
|
|
2511
|
-
infinite-scroller {
|
|
2512
|
-
display: block;
|
|
2513
|
-
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2514
|
-
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2515
|
-
}
|
|
2516
|
-
|
|
2517
|
-
infinite-scroller.list-compact {
|
|
2518
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2519
|
-
--collectionBrowserCellMinWidth,
|
|
2520
|
-
100%
|
|
2521
|
-
);
|
|
2522
|
-
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2523
|
-
--infiniteScrollerCellMaxHeight: 56px;
|
|
2524
|
-
--infiniteScrollerRowGap: 10px;
|
|
2525
|
-
}
|
|
2526
|
-
|
|
2527
|
-
infinite-scroller.list-detail {
|
|
2528
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2529
|
-
--collectionBrowserCellMinWidth,
|
|
2530
|
-
100%
|
|
2531
|
-
);
|
|
2532
|
-
--infiniteScrollerCellMinHeight: var(
|
|
2533
|
-
--collectionBrowserCellMinHeight,
|
|
2534
|
-
5rem
|
|
2535
|
-
);
|
|
2536
|
-
/*
|
|
2537
|
-
30px in spec, compensating for a -4px margin
|
|
2538
|
-
to align title with top of item image
|
|
2539
|
-
src/tiles/list/tile-list.ts
|
|
2540
|
-
*/
|
|
2541
|
-
--infiniteScrollerRowGap: 34px;
|
|
2542
|
-
}
|
|
2543
|
-
|
|
2544
|
-
.mobile infinite-scroller.list-detail {
|
|
2545
|
-
--infiniteScrollerRowGap: 24px;
|
|
2546
|
-
}
|
|
2547
|
-
|
|
2548
|
-
infinite-scroller.grid {
|
|
2549
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2550
|
-
--collectionBrowserCellMinWidth,
|
|
2551
|
-
17rem
|
|
2552
|
-
);
|
|
2553
|
-
--infiniteScrollerCellMaxWidth: var(
|
|
2554
|
-
--collectionBrowserCellMaxWidth,
|
|
2555
|
-
1fr
|
|
2556
|
-
);
|
|
2557
|
-
}
|
|
2558
|
-
|
|
2559
|
-
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2560
|
-
@media screen and (max-width: 880px) {
|
|
2561
|
-
infinite-scroller.grid {
|
|
2562
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2563
|
-
--collectionBrowserCellMinWidth,
|
|
2564
|
-
15rem
|
|
2565
|
-
);
|
|
2566
|
-
}
|
|
2567
|
-
}
|
|
2568
|
-
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2569
|
-
@media screen and (max-width: 360px) {
|
|
2570
|
-
infinite-scroller.grid {
|
|
2571
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2572
|
-
--collectionBrowserCellMinWidth,
|
|
2573
|
-
12rem
|
|
2574
|
-
);
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
|
|
2578
|
-
infinite-scroller.hidden {
|
|
2579
|
-
display: none;
|
|
2580
|
-
}
|
|
2108
|
+
css `
|
|
2109
|
+
:host {
|
|
2110
|
+
display: block;
|
|
2111
|
+
--leftColumnWidth: 18rem;
|
|
2112
|
+
--leftColumnPaddingTop: 2rem;
|
|
2113
|
+
--leftColumnPaddingRight: 2.5rem;
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2116
|
+
#facet-top-view {
|
|
2117
|
+
display: flex;
|
|
2118
|
+
}
|
|
2119
|
+
|
|
2120
|
+
/**
|
|
2121
|
+
* When page width resizes from desktop to mobile, use this class to
|
|
2122
|
+
* disable expand/collapse transition when loading.
|
|
2123
|
+
*/
|
|
2124
|
+
.preload * {
|
|
2125
|
+
transition: none !important;
|
|
2126
|
+
-webkit-transition: none !important;
|
|
2127
|
+
-moz-transition: none !important;
|
|
2128
|
+
-ms-transition: none !important;
|
|
2129
|
+
-o-transition: none !important;
|
|
2130
|
+
}
|
|
2131
|
+
|
|
2132
|
+
#content-container {
|
|
2133
|
+
display: flex;
|
|
2134
|
+
}
|
|
2135
|
+
|
|
2136
|
+
empty-placeholder {
|
|
2137
|
+
margin-top: var(--placeholderMarginTop, 0);
|
|
2138
|
+
}
|
|
2139
|
+
|
|
2140
|
+
.collapser-icon {
|
|
2141
|
+
display: inline-block;
|
|
2142
|
+
}
|
|
2143
|
+
|
|
2144
|
+
.collapser-icon svg {
|
|
2145
|
+
display: inline-block;
|
|
2146
|
+
width: 12px;
|
|
2147
|
+
height: 12px;
|
|
2148
|
+
transition: transform 0.2s ease-out;
|
|
2149
|
+
}
|
|
2150
|
+
|
|
2151
|
+
#mobile-filter-collapse {
|
|
2152
|
+
width: 100%;
|
|
2153
|
+
}
|
|
2154
|
+
|
|
2155
|
+
#mobile-filter-collapse > summary {
|
|
2156
|
+
cursor: pointer;
|
|
2157
|
+
list-style: none;
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
#mobile-filter-collapse[open] > summary {
|
|
2161
|
+
margin-bottom: 10px;
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
#mobile-filter-collapse h2 {
|
|
2165
|
+
display: inline-block;
|
|
2166
|
+
margin: 0;
|
|
2167
|
+
font-size: 2rem;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
#mobile-filter-collapse[open] svg {
|
|
2171
|
+
transform: rotate(90deg);
|
|
2172
|
+
}
|
|
2173
|
+
|
|
2174
|
+
#content-container.mobile {
|
|
2175
|
+
display: block;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
#right-column {
|
|
2179
|
+
flex: 1;
|
|
2180
|
+
position: relative;
|
|
2181
|
+
min-height: 90vh;
|
|
2182
|
+
border-right: 1px solid rgb(232, 232, 232);
|
|
2183
|
+
margin-top: var(--rightColumnMarginTop, 0);
|
|
2184
|
+
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2185
|
+
background: #fff;
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2188
|
+
#left-column:not([hidden]) + #right-column {
|
|
2189
|
+
border-left: 1px solid rgb(232, 232, 232);
|
|
2190
|
+
}
|
|
2191
|
+
|
|
2192
|
+
#right-column.smart-results-spacing {
|
|
2193
|
+
padding-top: 0.5rem;
|
|
2194
|
+
border-right: none;
|
|
2195
|
+
background: transparent;
|
|
2196
|
+
min-width: 0;
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2199
|
+
#results {
|
|
2200
|
+
background: #fff;
|
|
2201
|
+
padding-left: 1rem;
|
|
2202
|
+
padding-right: 1rem;
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
#right-column.smart-results-spacing #results {
|
|
2206
|
+
border-radius: 10px 10px 0px 0px;
|
|
2207
|
+
padding-top: 0.5rem;
|
|
2208
|
+
margin-top: 1rem;
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
.mobile #right-column {
|
|
2212
|
+
border-left: none;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
.mobile #results {
|
|
2216
|
+
padding: 5px 5px 0;
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
#left-column {
|
|
2220
|
+
width: var(--leftColumnWidth, 18rem);
|
|
2221
|
+
/* Prevents Safari from shrinking col at first draw */
|
|
2222
|
+
min-width: var(--leftColumnWidth, 18rem);
|
|
2223
|
+
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2224
|
+
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2225
|
+
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2226
|
+
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2227
|
+
z-index: 1;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
.desktop #left-column {
|
|
2231
|
+
top: 0;
|
|
2232
|
+
position: sticky;
|
|
2233
|
+
height: calc(100vh - 2rem);
|
|
2234
|
+
max-height: calc(100vh - 2rem);
|
|
2235
|
+
overflow-x: hidden;
|
|
2236
|
+
overflow-y: scroll;
|
|
2237
|
+
|
|
2238
|
+
/*
|
|
2239
|
+
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2240
|
+
* does at least give us a tiny bit of control over width & color.
|
|
2241
|
+
*/
|
|
2242
|
+
scrollbar-width: thin;
|
|
2243
|
+
scrollbar-color: transparent transparent;
|
|
2244
|
+
}
|
|
2245
|
+
.desktop #left-column:hover {
|
|
2246
|
+
scrollbar-color: auto;
|
|
2247
|
+
}
|
|
2248
|
+
.desktop #left-column::-webkit-scrollbar {
|
|
2249
|
+
appearance: none;
|
|
2250
|
+
width: 6px;
|
|
2251
|
+
}
|
|
2252
|
+
.desktop #left-column::-webkit-scrollbar-button {
|
|
2253
|
+
height: 3px;
|
|
2254
|
+
background: transparent;
|
|
2255
|
+
}
|
|
2256
|
+
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2257
|
+
background: transparent;
|
|
2258
|
+
}
|
|
2259
|
+
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2260
|
+
border-radius: 4px;
|
|
2261
|
+
}
|
|
2262
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2263
|
+
background: rgba(0, 0, 0, 0.15);
|
|
2264
|
+
}
|
|
2265
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2266
|
+
background: rgba(0, 0, 0, 0.2);
|
|
2267
|
+
}
|
|
2268
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2269
|
+
background: rgba(0, 0, 0, 0.3);
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
#facets-bottom-fade {
|
|
2273
|
+
background: linear-gradient(
|
|
2274
|
+
to bottom,
|
|
2275
|
+
#fbfbfd00 0%,
|
|
2276
|
+
#fbfbfdc0 50%,
|
|
2277
|
+
#fbfbfd 80%,
|
|
2278
|
+
#fbfbfd 100%
|
|
2279
|
+
);
|
|
2280
|
+
position: fixed;
|
|
2281
|
+
bottom: 0;
|
|
2282
|
+
height: 50px;
|
|
2283
|
+
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2284
|
+
width: calc(
|
|
2285
|
+
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2286
|
+
);
|
|
2287
|
+
z-index: 2;
|
|
2288
|
+
pointer-events: none;
|
|
2289
|
+
transition: height 0.1s ease;
|
|
2290
|
+
}
|
|
2291
|
+
#facets-bottom-fade.hidden {
|
|
2292
|
+
height: 0;
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
.facets-message {
|
|
2296
|
+
font-size: 1.4rem;
|
|
2297
|
+
}
|
|
2298
|
+
|
|
2299
|
+
.desktop-facets-dropdown > summary {
|
|
2300
|
+
cursor: pointer;
|
|
2301
|
+
list-style: none;
|
|
2302
|
+
}
|
|
2303
|
+
|
|
2304
|
+
.desktop-facets-dropdown h2 {
|
|
2305
|
+
display: inline-block;
|
|
2306
|
+
margin: 0;
|
|
2307
|
+
font-size: 1.6rem;
|
|
2308
|
+
}
|
|
2309
|
+
|
|
2310
|
+
.desktop-facets-dropdown[open] > summary {
|
|
2311
|
+
margin-bottom: 10px;
|
|
2312
|
+
}
|
|
2313
|
+
|
|
2314
|
+
.desktop-facets-dropdown[open] svg {
|
|
2315
|
+
transform: rotate(90deg);
|
|
2316
|
+
}
|
|
2317
|
+
|
|
2318
|
+
.desktop #left-column-scroll-sentinel {
|
|
2319
|
+
width: 1px;
|
|
2320
|
+
height: 100vh;
|
|
2321
|
+
background: transparent;
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2324
|
+
.desktop #facets-scroll-sentinel {
|
|
2325
|
+
width: 1px;
|
|
2326
|
+
height: 1px;
|
|
2327
|
+
background: transparent;
|
|
2328
|
+
}
|
|
2329
|
+
|
|
2330
|
+
#facets-header-container {
|
|
2331
|
+
display: flex;
|
|
2332
|
+
justify-content: space-between;
|
|
2333
|
+
align-items: flex-start;
|
|
2334
|
+
clear: both;
|
|
2335
|
+
}
|
|
2336
|
+
|
|
2337
|
+
.desktop #facets-header-container {
|
|
2338
|
+
flex-wrap: wrap;
|
|
2339
|
+
}
|
|
2340
|
+
|
|
2341
|
+
.mobile #left-column {
|
|
2342
|
+
width: 100%;
|
|
2343
|
+
min-width: 0;
|
|
2344
|
+
padding: 5px 0;
|
|
2345
|
+
border: 0;
|
|
2346
|
+
}
|
|
2347
|
+
|
|
2348
|
+
.clear-filters-btn-row {
|
|
2349
|
+
display: inline-block;
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2352
|
+
.desktop .clear-filters-btn-row {
|
|
2353
|
+
width: 100%;
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2356
|
+
.clear-filters-btn {
|
|
2357
|
+
display: inline-block;
|
|
2358
|
+
appearance: none;
|
|
2359
|
+
margin: 0;
|
|
2360
|
+
padding: 0;
|
|
2361
|
+
border: 0;
|
|
2362
|
+
background: none;
|
|
2363
|
+
color: var(--ia-theme-link-color);
|
|
2364
|
+
font-size: 1.4rem;
|
|
2365
|
+
font-family: inherit;
|
|
2366
|
+
cursor: pointer;
|
|
2367
|
+
}
|
|
2368
|
+
|
|
2369
|
+
.clear-filters-btn:hover {
|
|
2370
|
+
text-decoration: underline;
|
|
2371
|
+
}
|
|
2372
|
+
|
|
2373
|
+
.clear-filters-btn-separator {
|
|
2374
|
+
display: inline-block;
|
|
2375
|
+
margin-left: 5px;
|
|
2376
|
+
border-left: 1px solid #2c2c2c;
|
|
2377
|
+
font-size: 1.4rem;
|
|
2378
|
+
line-height: 1.3rem;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
#tv-filters {
|
|
2382
|
+
margin-bottom: 15px;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
#tv-shows {
|
|
2386
|
+
--comboBoxListWidth: 300px;
|
|
2387
|
+
}
|
|
2388
|
+
|
|
2389
|
+
.tv-filter-dropdown {
|
|
2390
|
+
display: block;
|
|
2391
|
+
font-size: 14px;
|
|
2392
|
+
margin-left: 1px;
|
|
2393
|
+
margin-bottom: 5px;
|
|
2394
|
+
}
|
|
2395
|
+
|
|
2396
|
+
.tv-filter-dropdown::part(combo-box) {
|
|
2397
|
+
outline-offset: 1px;
|
|
2398
|
+
}
|
|
2399
|
+
|
|
2400
|
+
.tv-filter-dropdown::part(option) {
|
|
2401
|
+
line-height: 1.1;
|
|
2402
|
+
padding: 7px;
|
|
2403
|
+
}
|
|
2404
|
+
|
|
2405
|
+
.tv-filter-dropdown::part(clear-button) {
|
|
2406
|
+
flex: 0 0 26px;
|
|
2407
|
+
--combo-box-clear-icon-size: 14px;
|
|
2408
|
+
}
|
|
2409
|
+
|
|
2410
|
+
.tv-filter-dropdown::part(icon) {
|
|
2411
|
+
width: 1.4rem;
|
|
2412
|
+
height: 1.4rem;
|
|
2413
|
+
}
|
|
2414
|
+
|
|
2415
|
+
#facets-container {
|
|
2416
|
+
position: relative;
|
|
2417
|
+
max-height: 0;
|
|
2418
|
+
transition: max-height 0.2s ease-in-out;
|
|
2419
|
+
z-index: 1;
|
|
2420
|
+
margin-top: var(--facetsContainerMarginTop, 3rem);
|
|
2421
|
+
padding-bottom: 2rem;
|
|
2422
|
+
}
|
|
2423
|
+
|
|
2424
|
+
.desktop #facets-container {
|
|
2425
|
+
width: 18rem;
|
|
2426
|
+
}
|
|
2427
|
+
|
|
2428
|
+
.mobile #facets-container {
|
|
2429
|
+
overflow: hidden;
|
|
2430
|
+
padding-bottom: 0;
|
|
2431
|
+
padding-left: 10px;
|
|
2432
|
+
padding-right: 10px;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
#facets-container.expanded {
|
|
2436
|
+
max-height: 2000px;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
.results-section-heading {
|
|
2440
|
+
margin: 0.5rem 0.3rem;
|
|
2441
|
+
font-size: 2rem;
|
|
2442
|
+
line-height: 25px;
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
#results-total {
|
|
2446
|
+
display: flex;
|
|
2447
|
+
align-items: baseline;
|
|
2448
|
+
}
|
|
2449
|
+
|
|
2450
|
+
#results-total:not(.filtered) {
|
|
2451
|
+
padding-bottom: 2rem;
|
|
2452
|
+
}
|
|
2453
|
+
|
|
2454
|
+
.mobile #results-total {
|
|
2455
|
+
position: absolute;
|
|
2456
|
+
right: 10px;
|
|
2457
|
+
}
|
|
2458
|
+
|
|
2459
|
+
#big-results-count {
|
|
2460
|
+
font-size: 2.4rem;
|
|
2461
|
+
font-weight: 500;
|
|
2462
|
+
margin-right: 5px;
|
|
2463
|
+
}
|
|
2464
|
+
|
|
2465
|
+
.mobile #big-results-count {
|
|
2466
|
+
font-size: 2rem;
|
|
2467
|
+
}
|
|
2468
|
+
|
|
2469
|
+
#big-results-label {
|
|
2470
|
+
font-size: 1.4rem;
|
|
2471
|
+
font-weight: 200;
|
|
2472
|
+
}
|
|
2473
|
+
|
|
2474
|
+
#list-header {
|
|
2475
|
+
max-height: 4.2rem;
|
|
2476
|
+
}
|
|
2477
|
+
|
|
2478
|
+
.loading-cover {
|
|
2479
|
+
position: absolute;
|
|
2480
|
+
top: 0;
|
|
2481
|
+
left: 0;
|
|
2482
|
+
width: 100%;
|
|
2483
|
+
height: 100%;
|
|
2484
|
+
display: flex;
|
|
2485
|
+
justify-content: center;
|
|
2486
|
+
z-index: 1;
|
|
2487
|
+
padding-top: 50px;
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
#tile-blur-label {
|
|
2491
|
+
display: flex;
|
|
2492
|
+
align-items: center;
|
|
2493
|
+
column-gap: 5px;
|
|
2494
|
+
}
|
|
2495
|
+
|
|
2496
|
+
#tile-blur-check {
|
|
2497
|
+
margin: 0 5px 0 0;
|
|
2498
|
+
width: 15px;
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2501
|
+
circular-activity-indicator {
|
|
2502
|
+
width: 30px;
|
|
2503
|
+
height: 30px;
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2506
|
+
sort-filter-bar {
|
|
2507
|
+
display: block;
|
|
2508
|
+
margin-bottom: 4rem;
|
|
2509
|
+
}
|
|
2510
|
+
|
|
2511
|
+
infinite-scroller {
|
|
2512
|
+
display: block;
|
|
2513
|
+
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2514
|
+
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2515
|
+
}
|
|
2516
|
+
|
|
2517
|
+
infinite-scroller.list-compact {
|
|
2518
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2519
|
+
--collectionBrowserCellMinWidth,
|
|
2520
|
+
100%
|
|
2521
|
+
);
|
|
2522
|
+
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2523
|
+
--infiniteScrollerCellMaxHeight: 56px;
|
|
2524
|
+
--infiniteScrollerRowGap: 10px;
|
|
2525
|
+
}
|
|
2526
|
+
|
|
2527
|
+
infinite-scroller.list-detail {
|
|
2528
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2529
|
+
--collectionBrowserCellMinWidth,
|
|
2530
|
+
100%
|
|
2531
|
+
);
|
|
2532
|
+
--infiniteScrollerCellMinHeight: var(
|
|
2533
|
+
--collectionBrowserCellMinHeight,
|
|
2534
|
+
5rem
|
|
2535
|
+
);
|
|
2536
|
+
/*
|
|
2537
|
+
30px in spec, compensating for a -4px margin
|
|
2538
|
+
to align title with top of item image
|
|
2539
|
+
src/tiles/list/tile-list.ts
|
|
2540
|
+
*/
|
|
2541
|
+
--infiniteScrollerRowGap: 34px;
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
.mobile infinite-scroller.list-detail {
|
|
2545
|
+
--infiniteScrollerRowGap: 24px;
|
|
2546
|
+
}
|
|
2547
|
+
|
|
2548
|
+
infinite-scroller.grid {
|
|
2549
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2550
|
+
--collectionBrowserCellMinWidth,
|
|
2551
|
+
17rem
|
|
2552
|
+
);
|
|
2553
|
+
--infiniteScrollerCellMaxWidth: var(
|
|
2554
|
+
--collectionBrowserCellMaxWidth,
|
|
2555
|
+
1fr
|
|
2556
|
+
);
|
|
2557
|
+
}
|
|
2558
|
+
|
|
2559
|
+
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2560
|
+
@media screen and (max-width: 880px) {
|
|
2561
|
+
infinite-scroller.grid {
|
|
2562
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2563
|
+
--collectionBrowserCellMinWidth,
|
|
2564
|
+
15rem
|
|
2565
|
+
);
|
|
2566
|
+
}
|
|
2567
|
+
}
|
|
2568
|
+
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2569
|
+
@media screen and (max-width: 360px) {
|
|
2570
|
+
infinite-scroller.grid {
|
|
2571
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2572
|
+
--collectionBrowserCellMinWidth,
|
|
2573
|
+
12rem
|
|
2574
|
+
);
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
|
|
2578
|
+
infinite-scroller.hidden {
|
|
2579
|
+
display: none;
|
|
2580
|
+
}
|
|
2581
2581
|
`,
|
|
2582
2582
|
];
|
|
2583
2583
|
}
|