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