@internetarchive/collection-browser 3.3.4-alpha-webdev7761.0 → 3.3.4-alpha-webdev7761.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/src/collection-browser.d.ts +1 -0
- package/dist/src/collection-browser.js +785 -740
- package/dist/src/collection-browser.js.map +1 -1
- package/package.json +1 -1
- package/src/collection-browser.ts +3002 -2954
|
@@ -23,7 +23,7 @@ import './manage/manage-bar';
|
|
|
23
23
|
import './collection-facets';
|
|
24
24
|
import './circular-activity-indicator';
|
|
25
25
|
import './collection-facets/smart-facets/smart-facet-bar';
|
|
26
|
-
import {
|
|
26
|
+
import { updateSelectedFacetBucket, } from './utils/facet-utils';
|
|
27
27
|
let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
28
28
|
constructor() {
|
|
29
29
|
super();
|
|
@@ -186,6 +186,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
186
186
|
this.placeholderCellTemplate = html `<collection-browser-loading-tile></collection-browser-loading-tile>`;
|
|
187
187
|
this.selectedTVNetwork = undefined;
|
|
188
188
|
this.selectedTVShow = undefined;
|
|
189
|
+
this.shouldPopulateShows = false;
|
|
189
190
|
/**
|
|
190
191
|
* Updates the height of the left column according to its position on the page.
|
|
191
192
|
* Arrow function ensures proper `this` binding.
|
|
@@ -361,32 +362,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
361
362
|
this.setPlaceholderType();
|
|
362
363
|
}
|
|
363
364
|
render() {
|
|
364
|
-
return html `
|
|
365
|
+
return html `
|
|
365
366
|
${this.showSmartFacetBar && this.placeholderType === null
|
|
366
|
-
? html `<smart-facet-bar
|
|
367
|
-
.query=${this.baseQuery}
|
|
368
|
-
.aggregations=${this.dataSource.aggregations}
|
|
369
|
-
.selectedFacets=${this.selectedFacets}
|
|
370
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
371
|
-
.filterToggleShown=${!this.mobileView}
|
|
372
|
-
.filterToggleActive=${this.facetPaneVisible}
|
|
373
|
-
.label=${this.smartFacetBarLabel}
|
|
374
|
-
@facetsChanged=${this.facetsChanged}
|
|
367
|
+
? html `<smart-facet-bar
|
|
368
|
+
.query=${this.baseQuery}
|
|
369
|
+
.aggregations=${this.dataSource.aggregations}
|
|
370
|
+
.selectedFacets=${this.selectedFacets}
|
|
371
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
372
|
+
.filterToggleShown=${!this.mobileView}
|
|
373
|
+
.filterToggleActive=${this.facetPaneVisible}
|
|
374
|
+
.label=${this.smartFacetBarLabel}
|
|
375
|
+
@facetsChanged=${this.facetsChanged}
|
|
375
376
|
@filtersToggled=${() => {
|
|
376
377
|
this.facetPaneVisible = !this.facetPaneVisible;
|
|
377
378
|
this.emitFacetPaneVisibilityChanged();
|
|
378
|
-
}}
|
|
379
|
+
}}
|
|
379
380
|
></smart-facet-bar>`
|
|
380
|
-
: nothing}
|
|
381
|
-
|
|
382
|
-
<div
|
|
383
|
-
id="content-container"
|
|
384
|
-
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
385
|
-
>
|
|
381
|
+
: nothing}
|
|
382
|
+
|
|
383
|
+
<div
|
|
384
|
+
id="content-container"
|
|
385
|
+
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
386
|
+
>
|
|
386
387
|
${this.placeholderType
|
|
387
388
|
? this.emptyPlaceholderTemplate
|
|
388
|
-
: this.collectionBrowserTemplate}
|
|
389
|
-
</div>
|
|
389
|
+
: this.collectionBrowserTemplate}
|
|
390
|
+
</div>
|
|
390
391
|
`;
|
|
391
392
|
}
|
|
392
393
|
/**
|
|
@@ -432,23 +433,23 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
432
433
|
*/
|
|
433
434
|
get emptyPlaceholderTemplate() {
|
|
434
435
|
var _a;
|
|
435
|
-
return html `
|
|
436
|
-
<empty-placeholder
|
|
437
|
-
.placeholderType=${this.placeholderType}
|
|
438
|
-
?isMobileView=${this.mobileView}
|
|
439
|
-
?isCollection=${!!this.withinCollection}
|
|
440
|
-
.detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
|
|
441
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
442
|
-
></empty-placeholder>
|
|
436
|
+
return html `
|
|
437
|
+
<empty-placeholder
|
|
438
|
+
.placeholderType=${this.placeholderType}
|
|
439
|
+
?isMobileView=${this.mobileView}
|
|
440
|
+
?isCollection=${!!this.withinCollection}
|
|
441
|
+
.detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
|
|
442
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
443
|
+
></empty-placeholder>
|
|
443
444
|
`;
|
|
444
445
|
}
|
|
445
446
|
/**
|
|
446
447
|
* Top-level template for rendering the left (facets) and right (results) columns.
|
|
447
448
|
*/
|
|
448
449
|
get collectionBrowserTemplate() {
|
|
449
|
-
return html `
|
|
450
|
-
<div id="left-column-scroll-sentinel"></div>
|
|
451
|
-
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
450
|
+
return html `
|
|
451
|
+
<div id="left-column-scroll-sentinel"></div>
|
|
452
|
+
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
452
453
|
`;
|
|
453
454
|
}
|
|
454
455
|
/**
|
|
@@ -467,33 +468,33 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
467
468
|
* accordion-style facets.
|
|
468
469
|
*/
|
|
469
470
|
get mobileLeftColumnTemplate() {
|
|
470
|
-
return html `
|
|
471
|
-
<div
|
|
472
|
-
id="left-column"
|
|
473
|
-
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
474
|
-
>
|
|
475
|
-
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
476
|
-
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
477
|
-
</div>
|
|
471
|
+
return html `
|
|
472
|
+
<div
|
|
473
|
+
id="left-column"
|
|
474
|
+
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
475
|
+
>
|
|
476
|
+
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
477
|
+
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
478
|
+
</div>
|
|
478
479
|
`;
|
|
479
480
|
}
|
|
480
481
|
/**
|
|
481
482
|
* Template for the desktop version of the left column, displaying the facets sidebar.
|
|
482
483
|
*/
|
|
483
484
|
get desktopLeftColumnTemplate() {
|
|
484
|
-
return html `
|
|
485
|
-
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
486
|
-
${this.facetTopViewSlot}
|
|
487
|
-
<div id="facets-header-container">
|
|
488
|
-
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
489
|
-
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
490
|
-
</div>
|
|
491
|
-
<div id="facets-container" aria-labelledby="facets-header">
|
|
492
|
-
${this.facetsTemplate}
|
|
493
|
-
<div id="facets-scroll-sentinel"></div>
|
|
494
|
-
</div>
|
|
495
|
-
<div id="facets-bottom-fade"></div>
|
|
496
|
-
</div>
|
|
485
|
+
return html `
|
|
486
|
+
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
487
|
+
${this.facetTopViewSlot}
|
|
488
|
+
<div id="facets-header-container">
|
|
489
|
+
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
490
|
+
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
491
|
+
</div>
|
|
492
|
+
<div id="facets-container" aria-labelledby="facets-header">
|
|
493
|
+
${this.facetsTemplate}
|
|
494
|
+
<div id="facets-scroll-sentinel"></div>
|
|
495
|
+
</div>
|
|
496
|
+
<div id="facets-bottom-fade"></div>
|
|
497
|
+
</div>
|
|
497
498
|
`;
|
|
498
499
|
}
|
|
499
500
|
/**
|
|
@@ -501,8 +502,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
501
502
|
* - mainly used to render userlists
|
|
502
503
|
*/
|
|
503
504
|
get facetTopViewSlot() {
|
|
504
|
-
return html `<div id="facet-top-view">
|
|
505
|
-
<slot name="facet-top-slot"></slot>
|
|
505
|
+
return html `<div id="facet-top-view">
|
|
506
|
+
<slot name="facet-top-slot"></slot>
|
|
506
507
|
</div>`;
|
|
507
508
|
}
|
|
508
509
|
/**
|
|
@@ -517,15 +518,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
517
518
|
const resultsCount = (_a = this.totalResults) === null || _a === void 0 ? void 0 : _a.toLocaleString();
|
|
518
519
|
const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
|
|
519
520
|
// Added data-testid for Playwright testing
|
|
520
|
-
return html `
|
|
521
|
-
<div id="results-total" data-testid="results-total">
|
|
522
|
-
<span id="big-results-count">
|
|
523
|
-
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
524
|
-
</span>
|
|
525
|
-
<span id="big-results-label">
|
|
526
|
-
${shouldShowSearching ? nothing : resultsLabel}
|
|
527
|
-
</span>
|
|
528
|
-
</div>
|
|
521
|
+
return html `
|
|
522
|
+
<div id="results-total" data-testid="results-total">
|
|
523
|
+
<span id="big-results-count">
|
|
524
|
+
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
525
|
+
</span>
|
|
526
|
+
<span id="big-results-label">
|
|
527
|
+
${shouldShowSearching ? nothing : resultsLabel}
|
|
528
|
+
</span>
|
|
529
|
+
</div>
|
|
529
530
|
`;
|
|
530
531
|
}
|
|
531
532
|
/**
|
|
@@ -538,45 +539,45 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
538
539
|
'full-width': !this.facetPaneVisible,
|
|
539
540
|
'smart-results-spacing': !!this.showSmartResults,
|
|
540
541
|
});
|
|
541
|
-
return html `
|
|
542
|
-
<div id="right-column" class=${rightColumnClasses}>
|
|
542
|
+
return html `
|
|
543
|
+
<div id="right-column" class=${rightColumnClasses}>
|
|
543
544
|
${this.showSmartResults
|
|
544
545
|
? html `<slot name="smart-results"></slot>`
|
|
545
|
-
: nothing}
|
|
546
|
-
<section id="results">
|
|
547
|
-
<h2 class="results-section-heading">
|
|
548
|
-
<slot name="results-heading"></slot>
|
|
549
|
-
</h2>
|
|
550
|
-
<div id="cb-top-view">
|
|
551
|
-
<slot name="cb-top-slot"></slot>
|
|
552
|
-
</div>
|
|
546
|
+
: nothing}
|
|
547
|
+
<section id="results">
|
|
548
|
+
<h2 class="results-section-heading">
|
|
549
|
+
<slot name="results-heading"></slot>
|
|
550
|
+
</h2>
|
|
551
|
+
<div id="cb-top-view">
|
|
552
|
+
<slot name="cb-top-slot"></slot>
|
|
553
|
+
</div>
|
|
553
554
|
${this.isManageView
|
|
554
555
|
? this.manageBarTemplate
|
|
555
|
-
: this.sortFilterBarTemplate}
|
|
556
|
-
<slot name="cb-results"></slot>
|
|
556
|
+
: this.sortFilterBarTemplate}
|
|
557
|
+
<slot name="cb-results"></slot>
|
|
557
558
|
${this.displayMode === `list-compact` && this.totalResults
|
|
558
559
|
? this.listHeaderTemplate
|
|
559
|
-
: nothing}
|
|
560
|
-
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
561
|
-
</section>
|
|
562
|
-
</div>
|
|
560
|
+
: nothing}
|
|
561
|
+
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
562
|
+
</section>
|
|
563
|
+
</div>
|
|
563
564
|
`;
|
|
564
565
|
}
|
|
565
566
|
/**
|
|
566
567
|
* Template for the infinite scroller widget that contains the result tiles.
|
|
567
568
|
*/
|
|
568
569
|
get infiniteScrollerTemplate() {
|
|
569
|
-
return html `<infinite-scroller
|
|
570
|
-
class=${this.infiniteScrollerClasses}
|
|
571
|
-
itemCount=${this.placeholderType ? 0 : nothing}
|
|
572
|
-
ariaLandmarkLabel="Search results"
|
|
573
|
-
.cellProvider=${this}
|
|
574
|
-
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
575
|
-
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
576
|
-
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
570
|
+
return html `<infinite-scroller
|
|
571
|
+
class=${this.infiniteScrollerClasses}
|
|
572
|
+
itemCount=${this.placeholderType ? 0 : nothing}
|
|
573
|
+
ariaLandmarkLabel="Search results"
|
|
574
|
+
.cellProvider=${this}
|
|
575
|
+
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
576
|
+
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
577
|
+
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
577
578
|
>${this.displayMode === 'grid'
|
|
578
579
|
? html `<slot name="result-last-tile" slot="result-last-tile"></slot>`
|
|
579
|
-
: nothing}
|
|
580
|
+
: nothing}
|
|
580
581
|
</infinite-scroller>`;
|
|
581
582
|
}
|
|
582
583
|
/**
|
|
@@ -617,32 +618,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
617
618
|
}
|
|
618
619
|
// We only show relevance sort if a search query is currently defined
|
|
619
620
|
sortFieldAvailability.relevance = this.isRelevanceSortAvailable;
|
|
620
|
-
return html `
|
|
621
|
-
<sort-filter-bar
|
|
622
|
-
.defaultSortField=${this.defaultSortField}
|
|
623
|
-
.defaultSortDirection=${this.defaultSortDirection}
|
|
624
|
-
.defaultViewSort=${defaultViewSort}
|
|
625
|
-
.defaultDateSort=${defaultDateSort}
|
|
626
|
-
.selectedSort=${this.selectedSort}
|
|
627
|
-
.sortDirection=${this.sortDirection}
|
|
628
|
-
.sortFieldAvailability=${sortFieldAvailability}
|
|
629
|
-
.displayMode=${this.displayMode}
|
|
630
|
-
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
631
|
-
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
632
|
-
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
633
|
-
.resizeObserver=${this.resizeObserver}
|
|
634
|
-
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
635
|
-
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
636
|
-
@sortChanged=${this.userChangedSort}
|
|
637
|
-
@displayModeChanged=${this.displayModeChanged}
|
|
638
|
-
@titleLetterChanged=${this.titleLetterSelected}
|
|
639
|
-
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
640
|
-
>
|
|
641
|
-
${this.tileBlurCheckboxTemplate}
|
|
642
|
-
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
643
|
-
<slot name="sort-options" slot="sort-options"></slot>
|
|
644
|
-
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
645
|
-
</sort-filter-bar>
|
|
621
|
+
return html `
|
|
622
|
+
<sort-filter-bar
|
|
623
|
+
.defaultSortField=${this.defaultSortField}
|
|
624
|
+
.defaultSortDirection=${this.defaultSortDirection}
|
|
625
|
+
.defaultViewSort=${defaultViewSort}
|
|
626
|
+
.defaultDateSort=${defaultDateSort}
|
|
627
|
+
.selectedSort=${this.selectedSort}
|
|
628
|
+
.sortDirection=${this.sortDirection}
|
|
629
|
+
.sortFieldAvailability=${sortFieldAvailability}
|
|
630
|
+
.displayMode=${this.displayMode}
|
|
631
|
+
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
632
|
+
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
633
|
+
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
634
|
+
.resizeObserver=${this.resizeObserver}
|
|
635
|
+
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
636
|
+
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
637
|
+
@sortChanged=${this.userChangedSort}
|
|
638
|
+
@displayModeChanged=${this.displayModeChanged}
|
|
639
|
+
@titleLetterChanged=${this.titleLetterSelected}
|
|
640
|
+
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
641
|
+
>
|
|
642
|
+
${this.tileBlurCheckboxTemplate}
|
|
643
|
+
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
644
|
+
<slot name="sort-options" slot="sort-options"></slot>
|
|
645
|
+
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
646
|
+
</sort-filter-bar>
|
|
646
647
|
`;
|
|
647
648
|
}
|
|
648
649
|
/**
|
|
@@ -654,20 +655,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
654
655
|
// Only show the checkbox for @archive.org users
|
|
655
656
|
if (!((_a = this.dataSource.sessionContext) === null || _a === void 0 ? void 0 : _a.is_archive_user))
|
|
656
657
|
return nothing;
|
|
657
|
-
return html `
|
|
658
|
-
<label
|
|
659
|
-
id="tile-blur-label"
|
|
660
|
-
for="tile-blur-check"
|
|
661
|
-
slot="sort-options-right"
|
|
662
|
-
>
|
|
663
|
-
${msg('Blurring')}
|
|
664
|
-
<input
|
|
665
|
-
id="tile-blur-check"
|
|
666
|
-
type="checkbox"
|
|
667
|
-
?checked=${!this.shouldSuppressTileBlurring}
|
|
668
|
-
@change=${this.tileBlurCheckboxChanged}
|
|
669
|
-
/>
|
|
670
|
-
</label>
|
|
658
|
+
return html `
|
|
659
|
+
<label
|
|
660
|
+
id="tile-blur-label"
|
|
661
|
+
for="tile-blur-check"
|
|
662
|
+
slot="sort-options-right"
|
|
663
|
+
>
|
|
664
|
+
${msg('Blurring')}
|
|
665
|
+
<input
|
|
666
|
+
id="tile-blur-check"
|
|
667
|
+
type="checkbox"
|
|
668
|
+
?checked=${!this.shouldSuppressTileBlurring}
|
|
669
|
+
@change=${this.tileBlurCheckboxChanged}
|
|
670
|
+
/>
|
|
671
|
+
</label>
|
|
671
672
|
`;
|
|
672
673
|
}
|
|
673
674
|
/**
|
|
@@ -693,27 +694,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
693
694
|
* showing the management view. This generally replaces the sort bar when present.
|
|
694
695
|
*/
|
|
695
696
|
get manageBarTemplate() {
|
|
696
|
-
return html `
|
|
697
|
-
<manage-bar
|
|
698
|
-
.label=${this.manageViewLabel}
|
|
699
|
-
.modalManager=${this.modalManager}
|
|
700
|
-
.selectedItems=${this.dataSource.checkedTileModels}
|
|
701
|
-
.manageViewModalMsg=${this.manageViewModalMsg}
|
|
702
|
-
showSelectAll
|
|
703
|
-
showUnselectAll
|
|
704
|
-
?showItemManageButton=${this.pageContext === 'search'}
|
|
705
|
-
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
706
|
-
@removeItems=${this.handleRemoveItems}
|
|
707
|
-
@manageItems=${this.handleManageItems}
|
|
708
|
-
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
709
|
-
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
697
|
+
return html `
|
|
698
|
+
<manage-bar
|
|
699
|
+
.label=${this.manageViewLabel}
|
|
700
|
+
.modalManager=${this.modalManager}
|
|
701
|
+
.selectedItems=${this.dataSource.checkedTileModels}
|
|
702
|
+
.manageViewModalMsg=${this.manageViewModalMsg}
|
|
703
|
+
showSelectAll
|
|
704
|
+
showUnselectAll
|
|
705
|
+
?showItemManageButton=${this.pageContext === 'search'}
|
|
706
|
+
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
707
|
+
@removeItems=${this.handleRemoveItems}
|
|
708
|
+
@manageItems=${this.handleManageItems}
|
|
709
|
+
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
710
|
+
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
710
711
|
@cancel=${() => {
|
|
711
712
|
this.isManageView = false;
|
|
712
713
|
this.dataSource.uncheckAllTiles();
|
|
713
714
|
if (this.searchResultsLoading)
|
|
714
715
|
this.dataSource.resetPages();
|
|
715
|
-
}}
|
|
716
|
-
></manage-bar>
|
|
716
|
+
}}
|
|
717
|
+
></manage-bar>
|
|
717
718
|
`;
|
|
718
719
|
}
|
|
719
720
|
/**
|
|
@@ -961,15 +962,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
961
962
|
label: target.open ? 'open' : 'closed',
|
|
962
963
|
});
|
|
963
964
|
};
|
|
964
|
-
return html `
|
|
965
|
-
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
966
|
-
<summary>
|
|
967
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
968
|
-
<h2>${msg('Filters')}</h2>
|
|
969
|
-
${this.clearFiltersBtnTemplate(true)}
|
|
970
|
-
</summary>
|
|
971
|
-
${this.facetsTemplate}
|
|
972
|
-
</details>
|
|
965
|
+
return html `
|
|
966
|
+
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
967
|
+
<summary>
|
|
968
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
969
|
+
<h2>${msg('Filters')}</h2>
|
|
970
|
+
${this.clearFiltersBtnTemplate(true)}
|
|
971
|
+
</summary>
|
|
972
|
+
${this.facetsTemplate}
|
|
973
|
+
</details>
|
|
973
974
|
`;
|
|
974
975
|
}
|
|
975
976
|
async networksDropdownClicked() {
|
|
@@ -982,41 +983,59 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
982
983
|
var _a, _b;
|
|
983
984
|
(_a = this.tvShowsDropdown) === null || _a === void 0 ? void 0 : _a.classList.add('loading');
|
|
984
985
|
await this.dataSource.populateTVChannelMaps();
|
|
986
|
+
// Delay for a single tick so that the loading indicator will be rendered
|
|
987
|
+
// while the dropdown options are being added
|
|
988
|
+
await new Promise(res => setTimeout(res, 0));
|
|
989
|
+
this.shouldPopulateShows = true;
|
|
990
|
+
await this.updateComplete;
|
|
985
991
|
(_b = this.tvShowsDropdown) === null || _b === void 0 ? void 0 : _b.classList.remove('loading');
|
|
986
992
|
}
|
|
987
993
|
async networksDropdownChanged() {
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
this.
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
994
|
+
const previousNetwork = this.selectedTVNetwork;
|
|
995
|
+
this.selectedTVNetwork =
|
|
996
|
+
this.tvNetworksDropdown.selectedOptions[0].value || undefined;
|
|
997
|
+
const entries = this.dataSource.tvChannelMaps.channelToNetwork.entries();
|
|
998
|
+
for (const [channel, network] of entries) {
|
|
999
|
+
if (network === previousNetwork) {
|
|
1000
|
+
// Remove any previously-applied network filter
|
|
1001
|
+
const removedBucket = {
|
|
1002
|
+
key: channel.toLowerCase(),
|
|
1003
|
+
count: 0,
|
|
1004
|
+
state: 'none',
|
|
1005
|
+
};
|
|
1006
|
+
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, 'creator', removedBucket, true);
|
|
1007
|
+
}
|
|
1008
|
+
else if (network === this.selectedTVNetwork) {
|
|
1009
|
+
const newBucket = {
|
|
998
1010
|
key: channel.toLowerCase(),
|
|
999
1011
|
count: 0,
|
|
1000
1012
|
state: 'selected',
|
|
1001
|
-
}
|
|
1013
|
+
};
|
|
1014
|
+
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, 'creator', newBucket);
|
|
1002
1015
|
}
|
|
1003
1016
|
}
|
|
1004
|
-
log(newNetworkFacets);
|
|
1005
|
-
this.selectedFacets = mergeSelectedFacets(this.selectedFacets, newNetworkFacets);
|
|
1006
|
-
log(this.selectedFacets);
|
|
1007
1017
|
}
|
|
1008
1018
|
async showsDropdownChanged() {
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
this.
|
|
1012
|
-
|
|
1019
|
+
const previousShow = this.selectedTVShow;
|
|
1020
|
+
this.selectedTVShow =
|
|
1021
|
+
this.tvShowsDropdown.selectedOptions[0].value || undefined;
|
|
1022
|
+
// Remove any previously-applied shows filter
|
|
1023
|
+
if (previousShow !== undefined) {
|
|
1024
|
+
const removedBucket = {
|
|
1025
|
+
key: previousShow,
|
|
1026
|
+
count: 0,
|
|
1027
|
+
state: 'none',
|
|
1028
|
+
};
|
|
1029
|
+
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, 'program', removedBucket, true);
|
|
1030
|
+
}
|
|
1031
|
+
if (this.selectedTVShow) {
|
|
1032
|
+
const newBucket = {
|
|
1033
|
+
key: this.selectedTVShow,
|
|
1034
|
+
count: 0,
|
|
1035
|
+
state: 'selected',
|
|
1036
|
+
};
|
|
1037
|
+
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, 'program', newBucket);
|
|
1013
1038
|
}
|
|
1014
|
-
this.selectedTVShow = this.tvShowsDropdown.selectedOptions[0].value;
|
|
1015
|
-
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, 'program', {
|
|
1016
|
-
key: this.selectedTVShow,
|
|
1017
|
-
count: 0,
|
|
1018
|
-
state: 'selected',
|
|
1019
|
-
});
|
|
1020
1039
|
}
|
|
1021
1040
|
get tvDropdownFiltersTemplate() {
|
|
1022
1041
|
if (this.searchType !== SearchType.TV)
|
|
@@ -1032,27 +1051,35 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1032
1051
|
}
|
|
1033
1052
|
const shows = showEntries.map(([show]) => show);
|
|
1034
1053
|
log('end filters template preprocess', Date.now());
|
|
1035
|
-
return html `
|
|
1036
|
-
<div id="tv-filters" slot="facets-top">
|
|
1037
|
-
<
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1054
|
+
return html `
|
|
1055
|
+
<div id="tv-filters" slot="facets-top">
|
|
1056
|
+
<div class="tv-filter-dropdown-wrap">
|
|
1057
|
+
<select
|
|
1058
|
+
id="tv-networks"
|
|
1059
|
+
class="tv-filter-dropdown"
|
|
1060
|
+
@click=${this.networksDropdownClicked}
|
|
1061
|
+
@change=${this.networksDropdownChanged}
|
|
1062
|
+
>
|
|
1063
|
+
<option selected value="">${msg('Filter by Network')}</option>
|
|
1064
|
+
${map(networks, n => html `<option>${n}</option>`)}
|
|
1065
|
+
</select>
|
|
1066
|
+
<img src="https://archive.org/images/loading.gif" />
|
|
1067
|
+
</div>
|
|
1068
|
+
<div class="tv-filter-dropdown-wrap">
|
|
1069
|
+
<select
|
|
1070
|
+
id="tv-shows"
|
|
1071
|
+
class="tv-filter-dropdown"
|
|
1072
|
+
@click=${this.showsDropdownClicked}
|
|
1073
|
+
@change=${this.showsDropdownChanged}
|
|
1074
|
+
>
|
|
1075
|
+
<option selected value="">${msg('Filter by Show')}</option>
|
|
1076
|
+
${this.shouldPopulateShows
|
|
1077
|
+
? map(shows, s => html `<option>${s}</option>`)
|
|
1078
|
+
: nothing}
|
|
1079
|
+
</select>
|
|
1080
|
+
<img src="https://archive.org/images/loading.gif" />
|
|
1081
|
+
</div>
|
|
1082
|
+
</div>
|
|
1056
1083
|
`;
|
|
1057
1084
|
}
|
|
1058
1085
|
/**
|
|
@@ -1062,10 +1089,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1062
1089
|
if (FACETLESS_PAGE_ELEMENTS.includes(this.profileElement))
|
|
1063
1090
|
return nothing;
|
|
1064
1091
|
if (this.facetLoadStrategy === 'off') {
|
|
1065
|
-
return html `
|
|
1066
|
-
<p class="facets-message">
|
|
1067
|
-
${msg('Facets are temporarily unavailable.')}
|
|
1068
|
-
</p>
|
|
1092
|
+
return html `
|
|
1093
|
+
<p class="facets-message">
|
|
1094
|
+
${msg('Facets are temporarily unavailable.')}
|
|
1095
|
+
</p>
|
|
1069
1096
|
`;
|
|
1070
1097
|
}
|
|
1071
1098
|
// We switch to TV facet ordering & date picker if we are in a TV collection or showing TV search results
|
|
@@ -1074,46 +1101,46 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1074
1101
|
const facetDisplayOrder = shouldUseTvInterface
|
|
1075
1102
|
? tvFacetDisplayOrder
|
|
1076
1103
|
: defaultFacetDisplayOrder;
|
|
1077
|
-
const facets = html `
|
|
1078
|
-
<collection-facets
|
|
1079
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1080
|
-
.parentCollections=${this.dataSource.parentCollections}
|
|
1081
|
-
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1082
|
-
.searchService=${this.searchService}
|
|
1083
|
-
.featureFeedbackService=${this.featureFeedbackService}
|
|
1084
|
-
.recaptchaManager=${this.recaptchaManager}
|
|
1085
|
-
.resizeObserver=${this.resizeObserver}
|
|
1086
|
-
.searchType=${this.searchType}
|
|
1087
|
-
.aggregations=${this.dataSource.aggregations}
|
|
1088
|
-
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1089
|
-
.minSelectedDate=${this.minSelectedDate}
|
|
1090
|
-
.maxSelectedDate=${this.maxSelectedDate}
|
|
1091
|
-
.selectedFacets=${this.selectedFacets}
|
|
1092
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1093
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1094
|
-
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1095
|
-
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1096
|
-
.allowExpandingDatePicker=${!this.mobileView}
|
|
1097
|
-
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1098
|
-
.contentWidth=${this.contentWidth}
|
|
1099
|
-
.query=${this.baseQuery}
|
|
1100
|
-
.identifiers=${this.identifiers}
|
|
1101
|
-
.filterMap=${this.dataSource.filterMap}
|
|
1102
|
-
.isManageView=${this.isManageView}
|
|
1103
|
-
.modalManager=${this.modalManager}
|
|
1104
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
1105
|
-
.facetDisplayOrder=${facetDisplayOrder}
|
|
1106
|
-
.isTvSearch=${shouldUseTvInterface}
|
|
1107
|
-
?collapsableFacets=${this.mobileView}
|
|
1108
|
-
?facetsLoading=${this.facetsLoading}
|
|
1109
|
-
?histogramAggregationLoading=${this.facetsLoading}
|
|
1110
|
-
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1111
|
-
@facetClick=${this.facetClickHandler}
|
|
1112
|
-
@facetsChanged=${this.facetsChanged}
|
|
1113
|
-
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1114
|
-
>
|
|
1115
|
-
${this.tvDropdownFiltersTemplate}
|
|
1116
|
-
</collection-facets>
|
|
1104
|
+
const facets = html `
|
|
1105
|
+
<collection-facets
|
|
1106
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1107
|
+
.parentCollections=${this.dataSource.parentCollections}
|
|
1108
|
+
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
1109
|
+
.searchService=${this.searchService}
|
|
1110
|
+
.featureFeedbackService=${this.featureFeedbackService}
|
|
1111
|
+
.recaptchaManager=${this.recaptchaManager}
|
|
1112
|
+
.resizeObserver=${this.resizeObserver}
|
|
1113
|
+
.searchType=${this.searchType}
|
|
1114
|
+
.aggregations=${this.dataSource.aggregations}
|
|
1115
|
+
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
1116
|
+
.minSelectedDate=${this.minSelectedDate}
|
|
1117
|
+
.maxSelectedDate=${this.maxSelectedDate}
|
|
1118
|
+
.selectedFacets=${this.selectedFacets}
|
|
1119
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1120
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1121
|
+
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1122
|
+
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1123
|
+
.allowExpandingDatePicker=${!this.mobileView}
|
|
1124
|
+
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1125
|
+
.contentWidth=${this.contentWidth}
|
|
1126
|
+
.query=${this.baseQuery}
|
|
1127
|
+
.identifiers=${this.identifiers}
|
|
1128
|
+
.filterMap=${this.dataSource.filterMap}
|
|
1129
|
+
.isManageView=${this.isManageView}
|
|
1130
|
+
.modalManager=${this.modalManager}
|
|
1131
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
1132
|
+
.facetDisplayOrder=${facetDisplayOrder}
|
|
1133
|
+
.isTvSearch=${shouldUseTvInterface}
|
|
1134
|
+
?collapsableFacets=${this.mobileView}
|
|
1135
|
+
?facetsLoading=${this.facetsLoading}
|
|
1136
|
+
?histogramAggregationLoading=${this.facetsLoading}
|
|
1137
|
+
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1138
|
+
@facetClick=${this.facetClickHandler}
|
|
1139
|
+
@facetsChanged=${this.facetsChanged}
|
|
1140
|
+
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1141
|
+
>
|
|
1142
|
+
${this.tvDropdownFiltersTemplate}
|
|
1143
|
+
</collection-facets>
|
|
1117
1144
|
`;
|
|
1118
1145
|
// If we are using one of the opt-in facet load strategies, we may need to wrap the
|
|
1119
1146
|
// desktop view facets in a <details> widget so that patrons can opt into loading them.
|
|
@@ -1121,20 +1148,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1121
1148
|
const showDesktopOptInWidget = this.facetLoadStrategy === 'opt-in' ||
|
|
1122
1149
|
(this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
|
|
1123
1150
|
if (showDesktopOptInWidget && !this.mobileView) {
|
|
1124
|
-
return html `
|
|
1125
|
-
<details
|
|
1126
|
-
class="desktop-facets-dropdown"
|
|
1151
|
+
return html `
|
|
1152
|
+
<details
|
|
1153
|
+
class="desktop-facets-dropdown"
|
|
1127
1154
|
@toggle=${(e) => {
|
|
1128
1155
|
const target = e.target;
|
|
1129
1156
|
this.collapsibleFacetsVisible = target.open;
|
|
1130
|
-
}}
|
|
1131
|
-
>
|
|
1132
|
-
<summary>
|
|
1133
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
1134
|
-
<h2>${msg('Filters')}</h2>
|
|
1135
|
-
</summary>
|
|
1136
|
-
${facets}
|
|
1137
|
-
</details>
|
|
1157
|
+
}}
|
|
1158
|
+
>
|
|
1159
|
+
<summary>
|
|
1160
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
1161
|
+
<h2>${msg('Filters')}</h2>
|
|
1162
|
+
</summary>
|
|
1163
|
+
${facets}
|
|
1164
|
+
</details>
|
|
1138
1165
|
`;
|
|
1139
1166
|
}
|
|
1140
1167
|
// Otherwise, just render the facets component bare
|
|
@@ -1154,34 +1181,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1154
1181
|
mobile,
|
|
1155
1182
|
});
|
|
1156
1183
|
const buttonText = mobile ? 'Clear all' : 'Clear all filters';
|
|
1157
|
-
return html `
|
|
1158
|
-
<div class="clear-filters-btn-row">
|
|
1184
|
+
return html `
|
|
1185
|
+
<div class="clear-filters-btn-row">
|
|
1159
1186
|
${mobile
|
|
1160
1187
|
? html `<span class="clear-filters-btn-separator"> </span>`
|
|
1161
|
-
: nothing}
|
|
1162
|
-
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1163
|
-
${buttonText}
|
|
1164
|
-
</button>
|
|
1165
|
-
</div>
|
|
1188
|
+
: nothing}
|
|
1189
|
+
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1190
|
+
${buttonText}
|
|
1191
|
+
</button>
|
|
1192
|
+
</div>
|
|
1166
1193
|
`;
|
|
1167
1194
|
}
|
|
1168
1195
|
/**
|
|
1169
1196
|
* Template for the table header content that appears atop the compact list view.
|
|
1170
1197
|
*/
|
|
1171
1198
|
get listHeaderTemplate() {
|
|
1172
|
-
return html `
|
|
1173
|
-
<div id="list-header">
|
|
1174
|
-
<tile-dispatcher
|
|
1175
|
-
.tileDisplayMode=${'list-header'}
|
|
1176
|
-
.resizeObserver=${this.resizeObserver}
|
|
1177
|
-
.sortParam=${this.sortParam}
|
|
1178
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1179
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1180
|
-
.loggedIn=${this.loggedIn}
|
|
1181
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1182
|
-
>
|
|
1183
|
-
</tile-dispatcher>
|
|
1184
|
-
</div>
|
|
1199
|
+
return html `
|
|
1200
|
+
<div id="list-header">
|
|
1201
|
+
<tile-dispatcher
|
|
1202
|
+
.tileDisplayMode=${'list-header'}
|
|
1203
|
+
.resizeObserver=${this.resizeObserver}
|
|
1204
|
+
.sortParam=${this.sortParam}
|
|
1205
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1206
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1207
|
+
.loggedIn=${this.loggedIn}
|
|
1208
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1209
|
+
>
|
|
1210
|
+
</tile-dispatcher>
|
|
1211
|
+
</div>
|
|
1185
1212
|
`;
|
|
1186
1213
|
}
|
|
1187
1214
|
/**
|
|
@@ -1937,28 +1964,28 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1937
1964
|
const isRadioSearch = this.searchType === SearchType.RADIO;
|
|
1938
1965
|
const { isTVCollection, isRadioCollection } = this;
|
|
1939
1966
|
const shouldUseLocalTime = isTVSearch || isRadioSearch || isTVCollection || isRadioCollection;
|
|
1940
|
-
return html `
|
|
1941
|
-
<tile-dispatcher
|
|
1942
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1943
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1944
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
1945
|
-
.model=${model}
|
|
1946
|
-
.tileDisplayMode=${this.displayMode}
|
|
1947
|
-
.resizeObserver=${this.resizeObserver}
|
|
1948
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1949
|
-
.sortParam=${this.sortParam}
|
|
1950
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1951
|
-
.creatorFilter=${this.selectedCreatorFilter}
|
|
1952
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1953
|
-
.loggedIn=${this.loggedIn}
|
|
1954
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1955
|
-
.isManageView=${this.isManageView}
|
|
1956
|
-
?showTvClips=${isTVSearch || isTVCollection}
|
|
1957
|
-
?enableHoverPane=${true}
|
|
1958
|
-
?useLocalTime=${shouldUseLocalTime}
|
|
1959
|
-
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1960
|
-
>
|
|
1961
|
-
</tile-dispatcher>
|
|
1967
|
+
return html `
|
|
1968
|
+
<tile-dispatcher
|
|
1969
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1970
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1971
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
1972
|
+
.model=${model}
|
|
1973
|
+
.tileDisplayMode=${this.displayMode}
|
|
1974
|
+
.resizeObserver=${this.resizeObserver}
|
|
1975
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1976
|
+
.sortParam=${this.sortParam}
|
|
1977
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1978
|
+
.creatorFilter=${this.selectedCreatorFilter}
|
|
1979
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1980
|
+
.loggedIn=${this.loggedIn}
|
|
1981
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1982
|
+
.isManageView=${this.isManageView}
|
|
1983
|
+
?showTvClips=${isTVSearch || isTVCollection}
|
|
1984
|
+
?enableHoverPane=${true}
|
|
1985
|
+
?useLocalTime=${shouldUseLocalTime}
|
|
1986
|
+
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1987
|
+
>
|
|
1988
|
+
</tile-dispatcher>
|
|
1962
1989
|
`;
|
|
1963
1990
|
}
|
|
1964
1991
|
/**
|
|
@@ -1994,451 +2021,466 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1994
2021
|
static get styles() {
|
|
1995
2022
|
return [
|
|
1996
2023
|
srOnlyStyle,
|
|
1997
|
-
css `
|
|
1998
|
-
:host {
|
|
1999
|
-
display: block;
|
|
2000
|
-
--leftColumnWidth: 18rem;
|
|
2001
|
-
--leftColumnPaddingTop: 2rem;
|
|
2002
|
-
--leftColumnPaddingRight: 2.5rem;
|
|
2003
|
-
}
|
|
2004
|
-
|
|
2005
|
-
#facet-top-view {
|
|
2006
|
-
display: flex;
|
|
2007
|
-
}
|
|
2008
|
-
|
|
2009
|
-
/**
|
|
2010
|
-
* When page width resizes from desktop to mobile, use this class to
|
|
2011
|
-
* disable expand/collapse transition when loading.
|
|
2012
|
-
*/
|
|
2013
|
-
.preload * {
|
|
2014
|
-
transition: none !important;
|
|
2015
|
-
-webkit-transition: none !important;
|
|
2016
|
-
-moz-transition: none !important;
|
|
2017
|
-
-ms-transition: none !important;
|
|
2018
|
-
-o-transition: none !important;
|
|
2019
|
-
}
|
|
2020
|
-
|
|
2021
|
-
#content-container {
|
|
2022
|
-
display: flex;
|
|
2023
|
-
}
|
|
2024
|
-
|
|
2025
|
-
empty-placeholder {
|
|
2026
|
-
margin-top: var(--placeholderMarginTop, 0);
|
|
2027
|
-
}
|
|
2028
|
-
|
|
2029
|
-
.collapser-icon {
|
|
2030
|
-
display: inline-block;
|
|
2031
|
-
}
|
|
2032
|
-
|
|
2033
|
-
.collapser-icon svg {
|
|
2034
|
-
display: inline-block;
|
|
2035
|
-
width: 12px;
|
|
2036
|
-
height: 12px;
|
|
2037
|
-
transition: transform 0.2s ease-out;
|
|
2038
|
-
}
|
|
2039
|
-
|
|
2040
|
-
#mobile-filter-collapse {
|
|
2041
|
-
width: 100%;
|
|
2042
|
-
}
|
|
2043
|
-
|
|
2044
|
-
#mobile-filter-collapse > summary {
|
|
2045
|
-
cursor: pointer;
|
|
2046
|
-
list-style: none;
|
|
2047
|
-
}
|
|
2048
|
-
|
|
2049
|
-
#mobile-filter-collapse[open] > summary {
|
|
2050
|
-
margin-bottom: 10px;
|
|
2051
|
-
}
|
|
2052
|
-
|
|
2053
|
-
#mobile-filter-collapse h2 {
|
|
2054
|
-
display: inline-block;
|
|
2055
|
-
margin: 0;
|
|
2056
|
-
font-size: 2rem;
|
|
2057
|
-
}
|
|
2058
|
-
|
|
2059
|
-
#mobile-filter-collapse[open] svg {
|
|
2060
|
-
transform: rotate(90deg);
|
|
2061
|
-
}
|
|
2062
|
-
|
|
2063
|
-
#content-container.mobile {
|
|
2064
|
-
display: block;
|
|
2065
|
-
}
|
|
2066
|
-
|
|
2067
|
-
#right-column {
|
|
2068
|
-
flex: 1;
|
|
2069
|
-
position: relative;
|
|
2070
|
-
min-height: 90vh;
|
|
2071
|
-
border-right: 1px solid rgb(232, 232, 232);
|
|
2072
|
-
margin-top: var(--rightColumnMarginTop, 0);
|
|
2073
|
-
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2074
|
-
background: #fff;
|
|
2075
|
-
}
|
|
2076
|
-
|
|
2077
|
-
#left-column:not([hidden]) + #right-column {
|
|
2078
|
-
border-left: 1px solid rgb(232, 232, 232);
|
|
2079
|
-
}
|
|
2080
|
-
|
|
2081
|
-
#right-column.smart-results-spacing {
|
|
2082
|
-
padding-top: 0.5rem;
|
|
2083
|
-
border-right: none;
|
|
2084
|
-
background: transparent;
|
|
2085
|
-
min-width: 0;
|
|
2086
|
-
}
|
|
2087
|
-
|
|
2088
|
-
#results {
|
|
2089
|
-
background: #fff;
|
|
2090
|
-
padding-left: 1rem;
|
|
2091
|
-
padding-right: 1rem;
|
|
2092
|
-
}
|
|
2093
|
-
|
|
2094
|
-
#right-column.smart-results-spacing #results {
|
|
2095
|
-
border-radius: 10px 10px 0px 0px;
|
|
2096
|
-
padding-top: 0.5rem;
|
|
2097
|
-
margin-top: 1rem;
|
|
2098
|
-
}
|
|
2099
|
-
|
|
2100
|
-
.mobile #right-column {
|
|
2101
|
-
border-left: none;
|
|
2102
|
-
}
|
|
2103
|
-
|
|
2104
|
-
.mobile #results {
|
|
2105
|
-
padding: 5px 5px 0;
|
|
2106
|
-
}
|
|
2107
|
-
|
|
2108
|
-
#left-column {
|
|
2109
|
-
width: var(--leftColumnWidth, 18rem);
|
|
2110
|
-
/* Prevents Safari from shrinking col at first draw */
|
|
2111
|
-
min-width: var(--leftColumnWidth, 18rem);
|
|
2112
|
-
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2113
|
-
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2114
|
-
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2115
|
-
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2116
|
-
z-index: 1;
|
|
2117
|
-
}
|
|
2118
|
-
|
|
2119
|
-
.desktop #left-column {
|
|
2120
|
-
top: 0;
|
|
2121
|
-
position: sticky;
|
|
2122
|
-
height: calc(100vh - 2rem);
|
|
2123
|
-
max-height: calc(100vh - 2rem);
|
|
2124
|
-
overflow-x: hidden;
|
|
2125
|
-
overflow-y: scroll;
|
|
2126
|
-
|
|
2127
|
-
/*
|
|
2128
|
-
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2129
|
-
* does at least give us a tiny bit of control over width & color.
|
|
2130
|
-
*/
|
|
2131
|
-
scrollbar-width: thin;
|
|
2132
|
-
scrollbar-color: transparent transparent;
|
|
2133
|
-
}
|
|
2134
|
-
.desktop #left-column:hover {
|
|
2135
|
-
scrollbar-color: auto;
|
|
2136
|
-
}
|
|
2137
|
-
.desktop #left-column::-webkit-scrollbar {
|
|
2138
|
-
appearance: none;
|
|
2139
|
-
width: 6px;
|
|
2140
|
-
}
|
|
2141
|
-
.desktop #left-column::-webkit-scrollbar-button {
|
|
2142
|
-
height: 3px;
|
|
2143
|
-
background: transparent;
|
|
2144
|
-
}
|
|
2145
|
-
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2146
|
-
background: transparent;
|
|
2147
|
-
}
|
|
2148
|
-
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2149
|
-
border-radius: 4px;
|
|
2150
|
-
}
|
|
2151
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2152
|
-
background: rgba(0, 0, 0, 0.15);
|
|
2153
|
-
}
|
|
2154
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2155
|
-
background: rgba(0, 0, 0, 0.2);
|
|
2156
|
-
}
|
|
2157
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2158
|
-
background: rgba(0, 0, 0, 0.3);
|
|
2159
|
-
}
|
|
2160
|
-
|
|
2161
|
-
#facets-bottom-fade {
|
|
2162
|
-
background: linear-gradient(
|
|
2163
|
-
to bottom,
|
|
2164
|
-
#f5f5f700 0%,
|
|
2165
|
-
#f5f5f7c0 50%,
|
|
2166
|
-
#f5f5f7 80%,
|
|
2167
|
-
#f5f5f7 100%
|
|
2168
|
-
);
|
|
2169
|
-
position: fixed;
|
|
2170
|
-
bottom: 0;
|
|
2171
|
-
height: 50px;
|
|
2172
|
-
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2173
|
-
width: calc(
|
|
2174
|
-
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2175
|
-
);
|
|
2176
|
-
z-index: 2;
|
|
2177
|
-
pointer-events: none;
|
|
2178
|
-
transition: height 0.1s ease;
|
|
2179
|
-
}
|
|
2180
|
-
#facets-bottom-fade.hidden {
|
|
2181
|
-
height: 0;
|
|
2182
|
-
}
|
|
2183
|
-
|
|
2184
|
-
.facets-message {
|
|
2185
|
-
font-size: 1.4rem;
|
|
2186
|
-
}
|
|
2187
|
-
|
|
2188
|
-
.desktop-facets-dropdown > summary {
|
|
2189
|
-
cursor: pointer;
|
|
2190
|
-
list-style: none;
|
|
2191
|
-
}
|
|
2192
|
-
|
|
2193
|
-
.desktop-facets-dropdown h2 {
|
|
2194
|
-
display: inline-block;
|
|
2195
|
-
margin: 0;
|
|
2196
|
-
font-size: 1.6rem;
|
|
2197
|
-
}
|
|
2198
|
-
|
|
2199
|
-
.desktop-facets-dropdown[open] > summary {
|
|
2200
|
-
margin-bottom: 10px;
|
|
2201
|
-
}
|
|
2202
|
-
|
|
2203
|
-
.desktop-facets-dropdown[open] svg {
|
|
2204
|
-
transform: rotate(90deg);
|
|
2205
|
-
}
|
|
2206
|
-
|
|
2207
|
-
.desktop #left-column-scroll-sentinel {
|
|
2208
|
-
width: 1px;
|
|
2209
|
-
height: 100vh;
|
|
2210
|
-
background: transparent;
|
|
2211
|
-
}
|
|
2212
|
-
|
|
2213
|
-
.desktop #facets-scroll-sentinel {
|
|
2214
|
-
width: 1px;
|
|
2215
|
-
height: 1px;
|
|
2216
|
-
background: transparent;
|
|
2217
|
-
}
|
|
2218
|
-
|
|
2219
|
-
#facets-header-container {
|
|
2220
|
-
display: flex;
|
|
2221
|
-
justify-content: space-between;
|
|
2222
|
-
align-items: flex-start;
|
|
2223
|
-
clear: both;
|
|
2224
|
-
}
|
|
2225
|
-
|
|
2226
|
-
.desktop #facets-header-container {
|
|
2227
|
-
flex-wrap: wrap;
|
|
2228
|
-
}
|
|
2229
|
-
|
|
2230
|
-
.mobile #left-column {
|
|
2231
|
-
width: 100%;
|
|
2232
|
-
min-width: 0;
|
|
2233
|
-
padding: 5px 0;
|
|
2234
|
-
border: 0;
|
|
2235
|
-
}
|
|
2236
|
-
|
|
2237
|
-
.clear-filters-btn-row {
|
|
2238
|
-
display: inline-block;
|
|
2239
|
-
}
|
|
2240
|
-
|
|
2241
|
-
.desktop .clear-filters-btn-row {
|
|
2242
|
-
width: 100%;
|
|
2243
|
-
}
|
|
2244
|
-
|
|
2245
|
-
.clear-filters-btn {
|
|
2246
|
-
display: inline-block;
|
|
2247
|
-
appearance: none;
|
|
2248
|
-
margin: 0;
|
|
2249
|
-
padding: 0;
|
|
2250
|
-
border: 0;
|
|
2251
|
-
background: none;
|
|
2252
|
-
color: var(--ia-theme-link-color);
|
|
2253
|
-
font-size: 1.4rem;
|
|
2254
|
-
font-family: inherit;
|
|
2255
|
-
cursor: pointer;
|
|
2256
|
-
}
|
|
2257
|
-
|
|
2258
|
-
.clear-filters-btn:hover {
|
|
2259
|
-
text-decoration: underline;
|
|
2260
|
-
}
|
|
2261
|
-
|
|
2262
|
-
.clear-filters-btn-separator {
|
|
2263
|
-
display: inline-block;
|
|
2264
|
-
margin-left: 5px;
|
|
2265
|
-
border-left: 1px solid #2c2c2c;
|
|
2266
|
-
font-size: 1.4rem;
|
|
2267
|
-
line-height: 1.3rem;
|
|
2268
|
-
}
|
|
2269
|
-
|
|
2270
|
-
#tv-filters {
|
|
2271
|
-
margin-bottom: 15px;
|
|
2272
|
-
}
|
|
2273
|
-
|
|
2274
|
-
.tv-filter-dropdown {
|
|
2275
|
-
width: 100%;
|
|
2276
|
-
padding: 3px;
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
|
|
2302
|
-
}
|
|
2303
|
-
|
|
2304
|
-
.
|
|
2305
|
-
|
|
2306
|
-
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
}
|
|
2314
|
-
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
|
|
2319
|
-
|
|
2320
|
-
|
|
2321
|
-
font-size:
|
|
2322
|
-
|
|
2323
|
-
|
|
2324
|
-
|
|
2325
|
-
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
}
|
|
2329
|
-
|
|
2330
|
-
#
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
}
|
|
2334
|
-
|
|
2335
|
-
#
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
}
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
--
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
}
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2024
|
+
css `
|
|
2025
|
+
:host {
|
|
2026
|
+
display: block;
|
|
2027
|
+
--leftColumnWidth: 18rem;
|
|
2028
|
+
--leftColumnPaddingTop: 2rem;
|
|
2029
|
+
--leftColumnPaddingRight: 2.5rem;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
#facet-top-view {
|
|
2033
|
+
display: flex;
|
|
2034
|
+
}
|
|
2035
|
+
|
|
2036
|
+
/**
|
|
2037
|
+
* When page width resizes from desktop to mobile, use this class to
|
|
2038
|
+
* disable expand/collapse transition when loading.
|
|
2039
|
+
*/
|
|
2040
|
+
.preload * {
|
|
2041
|
+
transition: none !important;
|
|
2042
|
+
-webkit-transition: none !important;
|
|
2043
|
+
-moz-transition: none !important;
|
|
2044
|
+
-ms-transition: none !important;
|
|
2045
|
+
-o-transition: none !important;
|
|
2046
|
+
}
|
|
2047
|
+
|
|
2048
|
+
#content-container {
|
|
2049
|
+
display: flex;
|
|
2050
|
+
}
|
|
2051
|
+
|
|
2052
|
+
empty-placeholder {
|
|
2053
|
+
margin-top: var(--placeholderMarginTop, 0);
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
.collapser-icon {
|
|
2057
|
+
display: inline-block;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.collapser-icon svg {
|
|
2061
|
+
display: inline-block;
|
|
2062
|
+
width: 12px;
|
|
2063
|
+
height: 12px;
|
|
2064
|
+
transition: transform 0.2s ease-out;
|
|
2065
|
+
}
|
|
2066
|
+
|
|
2067
|
+
#mobile-filter-collapse {
|
|
2068
|
+
width: 100%;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
#mobile-filter-collapse > summary {
|
|
2072
|
+
cursor: pointer;
|
|
2073
|
+
list-style: none;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
#mobile-filter-collapse[open] > summary {
|
|
2077
|
+
margin-bottom: 10px;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
#mobile-filter-collapse h2 {
|
|
2081
|
+
display: inline-block;
|
|
2082
|
+
margin: 0;
|
|
2083
|
+
font-size: 2rem;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
#mobile-filter-collapse[open] svg {
|
|
2087
|
+
transform: rotate(90deg);
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
#content-container.mobile {
|
|
2091
|
+
display: block;
|
|
2092
|
+
}
|
|
2093
|
+
|
|
2094
|
+
#right-column {
|
|
2095
|
+
flex: 1;
|
|
2096
|
+
position: relative;
|
|
2097
|
+
min-height: 90vh;
|
|
2098
|
+
border-right: 1px solid rgb(232, 232, 232);
|
|
2099
|
+
margin-top: var(--rightColumnMarginTop, 0);
|
|
2100
|
+
padding-top: var(--rightColumnPaddingTop, 2rem);
|
|
2101
|
+
background: #fff;
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
#left-column:not([hidden]) + #right-column {
|
|
2105
|
+
border-left: 1px solid rgb(232, 232, 232);
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
#right-column.smart-results-spacing {
|
|
2109
|
+
padding-top: 0.5rem;
|
|
2110
|
+
border-right: none;
|
|
2111
|
+
background: transparent;
|
|
2112
|
+
min-width: 0;
|
|
2113
|
+
}
|
|
2114
|
+
|
|
2115
|
+
#results {
|
|
2116
|
+
background: #fff;
|
|
2117
|
+
padding-left: 1rem;
|
|
2118
|
+
padding-right: 1rem;
|
|
2119
|
+
}
|
|
2120
|
+
|
|
2121
|
+
#right-column.smart-results-spacing #results {
|
|
2122
|
+
border-radius: 10px 10px 0px 0px;
|
|
2123
|
+
padding-top: 0.5rem;
|
|
2124
|
+
margin-top: 1rem;
|
|
2125
|
+
}
|
|
2126
|
+
|
|
2127
|
+
.mobile #right-column {
|
|
2128
|
+
border-left: none;
|
|
2129
|
+
}
|
|
2130
|
+
|
|
2131
|
+
.mobile #results {
|
|
2132
|
+
padding: 5px 5px 0;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
#left-column {
|
|
2136
|
+
width: var(--leftColumnWidth, 18rem);
|
|
2137
|
+
/* Prevents Safari from shrinking col at first draw */
|
|
2138
|
+
min-width: var(--leftColumnWidth, 18rem);
|
|
2139
|
+
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
2140
|
+
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
2141
|
+
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
2142
|
+
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
2143
|
+
z-index: 1;
|
|
2144
|
+
}
|
|
2145
|
+
|
|
2146
|
+
.desktop #left-column {
|
|
2147
|
+
top: 0;
|
|
2148
|
+
position: sticky;
|
|
2149
|
+
height: calc(100vh - 2rem);
|
|
2150
|
+
max-height: calc(100vh - 2rem);
|
|
2151
|
+
overflow-x: hidden;
|
|
2152
|
+
overflow-y: scroll;
|
|
2153
|
+
|
|
2154
|
+
/*
|
|
2155
|
+
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2156
|
+
* does at least give us a tiny bit of control over width & color.
|
|
2157
|
+
*/
|
|
2158
|
+
scrollbar-width: thin;
|
|
2159
|
+
scrollbar-color: transparent transparent;
|
|
2160
|
+
}
|
|
2161
|
+
.desktop #left-column:hover {
|
|
2162
|
+
scrollbar-color: auto;
|
|
2163
|
+
}
|
|
2164
|
+
.desktop #left-column::-webkit-scrollbar {
|
|
2165
|
+
appearance: none;
|
|
2166
|
+
width: 6px;
|
|
2167
|
+
}
|
|
2168
|
+
.desktop #left-column::-webkit-scrollbar-button {
|
|
2169
|
+
height: 3px;
|
|
2170
|
+
background: transparent;
|
|
2171
|
+
}
|
|
2172
|
+
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2173
|
+
background: transparent;
|
|
2174
|
+
}
|
|
2175
|
+
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2176
|
+
border-radius: 4px;
|
|
2177
|
+
}
|
|
2178
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2179
|
+
background: rgba(0, 0, 0, 0.15);
|
|
2180
|
+
}
|
|
2181
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2182
|
+
background: rgba(0, 0, 0, 0.2);
|
|
2183
|
+
}
|
|
2184
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2185
|
+
background: rgba(0, 0, 0, 0.3);
|
|
2186
|
+
}
|
|
2187
|
+
|
|
2188
|
+
#facets-bottom-fade {
|
|
2189
|
+
background: linear-gradient(
|
|
2190
|
+
to bottom,
|
|
2191
|
+
#f5f5f700 0%,
|
|
2192
|
+
#f5f5f7c0 50%,
|
|
2193
|
+
#f5f5f7 80%,
|
|
2194
|
+
#f5f5f7 100%
|
|
2195
|
+
);
|
|
2196
|
+
position: fixed;
|
|
2197
|
+
bottom: 0;
|
|
2198
|
+
height: 50px;
|
|
2199
|
+
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2200
|
+
width: calc(
|
|
2201
|
+
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2202
|
+
);
|
|
2203
|
+
z-index: 2;
|
|
2204
|
+
pointer-events: none;
|
|
2205
|
+
transition: height 0.1s ease;
|
|
2206
|
+
}
|
|
2207
|
+
#facets-bottom-fade.hidden {
|
|
2208
|
+
height: 0;
|
|
2209
|
+
}
|
|
2210
|
+
|
|
2211
|
+
.facets-message {
|
|
2212
|
+
font-size: 1.4rem;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
.desktop-facets-dropdown > summary {
|
|
2216
|
+
cursor: pointer;
|
|
2217
|
+
list-style: none;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
.desktop-facets-dropdown h2 {
|
|
2221
|
+
display: inline-block;
|
|
2222
|
+
margin: 0;
|
|
2223
|
+
font-size: 1.6rem;
|
|
2224
|
+
}
|
|
2225
|
+
|
|
2226
|
+
.desktop-facets-dropdown[open] > summary {
|
|
2227
|
+
margin-bottom: 10px;
|
|
2228
|
+
}
|
|
2229
|
+
|
|
2230
|
+
.desktop-facets-dropdown[open] svg {
|
|
2231
|
+
transform: rotate(90deg);
|
|
2232
|
+
}
|
|
2233
|
+
|
|
2234
|
+
.desktop #left-column-scroll-sentinel {
|
|
2235
|
+
width: 1px;
|
|
2236
|
+
height: 100vh;
|
|
2237
|
+
background: transparent;
|
|
2238
|
+
}
|
|
2239
|
+
|
|
2240
|
+
.desktop #facets-scroll-sentinel {
|
|
2241
|
+
width: 1px;
|
|
2242
|
+
height: 1px;
|
|
2243
|
+
background: transparent;
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
#facets-header-container {
|
|
2247
|
+
display: flex;
|
|
2248
|
+
justify-content: space-between;
|
|
2249
|
+
align-items: flex-start;
|
|
2250
|
+
clear: both;
|
|
2251
|
+
}
|
|
2252
|
+
|
|
2253
|
+
.desktop #facets-header-container {
|
|
2254
|
+
flex-wrap: wrap;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2257
|
+
.mobile #left-column {
|
|
2258
|
+
width: 100%;
|
|
2259
|
+
min-width: 0;
|
|
2260
|
+
padding: 5px 0;
|
|
2261
|
+
border: 0;
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
.clear-filters-btn-row {
|
|
2265
|
+
display: inline-block;
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
.desktop .clear-filters-btn-row {
|
|
2269
|
+
width: 100%;
|
|
2270
|
+
}
|
|
2271
|
+
|
|
2272
|
+
.clear-filters-btn {
|
|
2273
|
+
display: inline-block;
|
|
2274
|
+
appearance: none;
|
|
2275
|
+
margin: 0;
|
|
2276
|
+
padding: 0;
|
|
2277
|
+
border: 0;
|
|
2278
|
+
background: none;
|
|
2279
|
+
color: var(--ia-theme-link-color);
|
|
2280
|
+
font-size: 1.4rem;
|
|
2281
|
+
font-family: inherit;
|
|
2282
|
+
cursor: pointer;
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
.clear-filters-btn:hover {
|
|
2286
|
+
text-decoration: underline;
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2289
|
+
.clear-filters-btn-separator {
|
|
2290
|
+
display: inline-block;
|
|
2291
|
+
margin-left: 5px;
|
|
2292
|
+
border-left: 1px solid #2c2c2c;
|
|
2293
|
+
font-size: 1.4rem;
|
|
2294
|
+
line-height: 1.3rem;
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
#tv-filters {
|
|
2298
|
+
margin-bottom: 15px;
|
|
2299
|
+
}
|
|
2300
|
+
|
|
2301
|
+
.tv-filter-dropdown {
|
|
2302
|
+
width: 100%;
|
|
2303
|
+
padding: 3px;
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
.tv-filter-dropdown-wrap {
|
|
2307
|
+
display: flex;
|
|
2308
|
+
align-items: center;
|
|
2309
|
+
column-gap: 5px;
|
|
2310
|
+
margin-bottom: 5px;
|
|
2311
|
+
}
|
|
2312
|
+
|
|
2313
|
+
.tv-filter-dropdown-wrap > img {
|
|
2314
|
+
flex: 1;
|
|
2315
|
+
visibility: hidden;
|
|
2316
|
+
}
|
|
2317
|
+
|
|
2318
|
+
.tv-filter-dropdown.loading + img {
|
|
2319
|
+
visibility: visible;
|
|
2320
|
+
}
|
|
2321
|
+
|
|
2322
|
+
#facets-container {
|
|
2323
|
+
position: relative;
|
|
2324
|
+
max-height: 0;
|
|
2325
|
+
transition: max-height 0.2s ease-in-out;
|
|
2326
|
+
z-index: 1;
|
|
2327
|
+
margin-top: var(--facetsContainerMarginTop, 5rem);
|
|
2328
|
+
padding-bottom: 2rem;
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
.desktop #facets-container {
|
|
2332
|
+
width: 18rem;
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2335
|
+
.mobile #facets-container {
|
|
2336
|
+
overflow: hidden;
|
|
2337
|
+
padding-bottom: 0;
|
|
2338
|
+
padding-left: 10px;
|
|
2339
|
+
padding-right: 10px;
|
|
2340
|
+
}
|
|
2341
|
+
|
|
2342
|
+
#facets-container.expanded {
|
|
2343
|
+
max-height: 2000px;
|
|
2344
|
+
}
|
|
2345
|
+
|
|
2346
|
+
.results-section-heading {
|
|
2347
|
+
margin: 0.5rem 0.3rem;
|
|
2348
|
+
font-size: 2rem;
|
|
2349
|
+
line-height: 25px;
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2352
|
+
#results-total {
|
|
2353
|
+
display: flex;
|
|
2354
|
+
align-items: baseline;
|
|
2355
|
+
}
|
|
2356
|
+
|
|
2357
|
+
.mobile #results-total {
|
|
2358
|
+
position: absolute;
|
|
2359
|
+
right: 10px;
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
#big-results-count {
|
|
2363
|
+
font-size: 2.4rem;
|
|
2364
|
+
font-weight: 500;
|
|
2365
|
+
margin-right: 5px;
|
|
2366
|
+
}
|
|
2367
|
+
|
|
2368
|
+
.mobile #big-results-count {
|
|
2369
|
+
font-size: 2rem;
|
|
2370
|
+
}
|
|
2371
|
+
|
|
2372
|
+
#big-results-label {
|
|
2373
|
+
font-size: 1.4rem;
|
|
2374
|
+
font-weight: 200;
|
|
2375
|
+
}
|
|
2376
|
+
|
|
2377
|
+
#list-header {
|
|
2378
|
+
max-height: 4.2rem;
|
|
2379
|
+
}
|
|
2380
|
+
|
|
2381
|
+
.loading-cover {
|
|
2382
|
+
position: absolute;
|
|
2383
|
+
top: 0;
|
|
2384
|
+
left: 0;
|
|
2385
|
+
width: 100%;
|
|
2386
|
+
height: 100%;
|
|
2387
|
+
display: flex;
|
|
2388
|
+
justify-content: center;
|
|
2389
|
+
z-index: 1;
|
|
2390
|
+
padding-top: 50px;
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
#tile-blur-label {
|
|
2394
|
+
display: flex;
|
|
2395
|
+
align-items: center;
|
|
2396
|
+
column-gap: 5px;
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2399
|
+
#tile-blur-check {
|
|
2400
|
+
margin: 0 5px 0 0;
|
|
2401
|
+
width: 15px;
|
|
2402
|
+
}
|
|
2403
|
+
|
|
2404
|
+
circular-activity-indicator {
|
|
2405
|
+
width: 30px;
|
|
2406
|
+
height: 30px;
|
|
2407
|
+
}
|
|
2408
|
+
|
|
2409
|
+
sort-filter-bar {
|
|
2410
|
+
display: block;
|
|
2411
|
+
margin-bottom: 4rem;
|
|
2412
|
+
}
|
|
2413
|
+
|
|
2414
|
+
infinite-scroller {
|
|
2415
|
+
display: block;
|
|
2416
|
+
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2417
|
+
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2418
|
+
}
|
|
2419
|
+
|
|
2420
|
+
infinite-scroller.list-compact {
|
|
2421
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2422
|
+
--collectionBrowserCellMinWidth,
|
|
2423
|
+
100%
|
|
2424
|
+
);
|
|
2425
|
+
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2426
|
+
--infiniteScrollerCellMaxHeight: 56px;
|
|
2427
|
+
--infiniteScrollerRowGap: 10px;
|
|
2428
|
+
}
|
|
2429
|
+
|
|
2430
|
+
infinite-scroller.list-detail {
|
|
2431
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2432
|
+
--collectionBrowserCellMinWidth,
|
|
2433
|
+
100%
|
|
2434
|
+
);
|
|
2435
|
+
--infiniteScrollerCellMinHeight: var(
|
|
2436
|
+
--collectionBrowserCellMinHeight,
|
|
2437
|
+
5rem
|
|
2438
|
+
);
|
|
2439
|
+
/*
|
|
2440
|
+
30px in spec, compensating for a -4px margin
|
|
2441
|
+
to align title with top of item image
|
|
2442
|
+
src/tiles/list/tile-list.ts
|
|
2443
|
+
*/
|
|
2444
|
+
--infiniteScrollerRowGap: 34px;
|
|
2445
|
+
}
|
|
2446
|
+
|
|
2447
|
+
.mobile infinite-scroller.list-detail {
|
|
2448
|
+
--infiniteScrollerRowGap: 24px;
|
|
2449
|
+
}
|
|
2450
|
+
|
|
2451
|
+
infinite-scroller.grid {
|
|
2452
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2453
|
+
--collectionBrowserCellMinWidth,
|
|
2454
|
+
17rem
|
|
2455
|
+
);
|
|
2456
|
+
--infiniteScrollerCellMaxWidth: var(
|
|
2457
|
+
--collectionBrowserCellMaxWidth,
|
|
2458
|
+
1fr
|
|
2459
|
+
);
|
|
2460
|
+
}
|
|
2461
|
+
|
|
2462
|
+
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2463
|
+
@media screen and (max-width: 880px) {
|
|
2464
|
+
infinite-scroller.grid {
|
|
2465
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2466
|
+
--collectionBrowserCellMinWidth,
|
|
2467
|
+
15rem
|
|
2468
|
+
);
|
|
2469
|
+
}
|
|
2470
|
+
}
|
|
2471
|
+
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2472
|
+
@media screen and (max-width: 360px) {
|
|
2473
|
+
infinite-scroller.grid {
|
|
2474
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2475
|
+
--collectionBrowserCellMinWidth,
|
|
2476
|
+
12rem
|
|
2477
|
+
);
|
|
2478
|
+
}
|
|
2479
|
+
}
|
|
2480
|
+
|
|
2481
|
+
infinite-scroller.hidden {
|
|
2482
|
+
display: none;
|
|
2483
|
+
}
|
|
2442
2484
|
`,
|
|
2443
2485
|
];
|
|
2444
2486
|
}
|
|
@@ -2656,6 +2698,9 @@ __decorate([
|
|
|
2656
2698
|
__decorate([
|
|
2657
2699
|
state()
|
|
2658
2700
|
], CollectionBrowser.prototype, "selectedTVShow", void 0);
|
|
2701
|
+
__decorate([
|
|
2702
|
+
state()
|
|
2703
|
+
], CollectionBrowser.prototype, "shouldPopulateShows", void 0);
|
|
2659
2704
|
__decorate([
|
|
2660
2705
|
query('#tv-networks')
|
|
2661
2706
|
], CollectionBrowser.prototype, "tvNetworksDropdown", void 0);
|