@internetarchive/collection-browser 2.18.3-alpha-webdev7768.9 → 2.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -353,32 +353,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
353
353
  this.setPlaceholderType();
354
354
  }
355
355
  render() {
356
- return html `
356
+ return html `
357
357
  ${this.showSmartFacetBar && this.placeholderType === null
358
- ? html `<smart-facet-bar
359
- .query=${this.baseQuery}
360
- .aggregations=${this.dataSource.aggregations}
361
- .selectedFacets=${this.selectedFacets}
362
- .collectionTitles=${this.dataSource.collectionTitles}
363
- .filterToggleShown=${!this.mobileView}
364
- .filterToggleActive=${this.facetPaneVisible}
365
- .label=${this.smartFacetBarLabel}
366
- @facetsChanged=${this.facetsChanged}
358
+ ? html `<smart-facet-bar
359
+ .query=${this.baseQuery}
360
+ .aggregations=${this.dataSource.aggregations}
361
+ .selectedFacets=${this.selectedFacets}
362
+ .collectionTitles=${this.dataSource.collectionTitles}
363
+ .filterToggleShown=${!this.mobileView}
364
+ .filterToggleActive=${this.facetPaneVisible}
365
+ .label=${this.smartFacetBarLabel}
366
+ @facetsChanged=${this.facetsChanged}
367
367
  @filtersToggled=${() => {
368
368
  this.facetPaneVisible = !this.facetPaneVisible;
369
369
  this.emitFacetPaneVisibilityChanged();
370
- }}
370
+ }}
371
371
  ></smart-facet-bar>`
372
- : nothing}
373
-
374
- <div
375
- id="content-container"
376
- class=${this.mobileView ? 'mobile' : 'desktop'}
377
- >
372
+ : nothing}
373
+
374
+ <div
375
+ id="content-container"
376
+ class=${this.mobileView ? 'mobile' : 'desktop'}
377
+ >
378
378
  ${this.placeholderType
379
379
  ? this.emptyPlaceholderTemplate
380
- : this.collectionBrowserTemplate}
381
- </div>
380
+ : this.collectionBrowserTemplate}
381
+ </div>
382
382
  `;
383
383
  }
384
384
  /**
@@ -418,23 +418,23 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
418
418
  */
419
419
  get emptyPlaceholderTemplate() {
420
420
  var _a;
421
- return html `
422
- <empty-placeholder
423
- .placeholderType=${this.placeholderType}
424
- ?isMobileView=${this.mobileView}
425
- ?isCollection=${!!this.withinCollection}
426
- .detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
427
- .baseNavigationUrl=${this.baseNavigationUrl}
428
- ></empty-placeholder>
421
+ return html `
422
+ <empty-placeholder
423
+ .placeholderType=${this.placeholderType}
424
+ ?isMobileView=${this.mobileView}
425
+ ?isCollection=${!!this.withinCollection}
426
+ .detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
427
+ .baseNavigationUrl=${this.baseNavigationUrl}
428
+ ></empty-placeholder>
429
429
  `;
430
430
  }
431
431
  /**
432
432
  * Top-level template for rendering the left (facets) and right (results) columns.
433
433
  */
434
434
  get collectionBrowserTemplate() {
435
- return html `
436
- <div id="left-column-scroll-sentinel"></div>
437
- ${this.leftColumnTemplate} ${this.rightColumnTemplate}
435
+ return html `
436
+ <div id="left-column-scroll-sentinel"></div>
437
+ ${this.leftColumnTemplate} ${this.rightColumnTemplate}
438
438
  `;
439
439
  }
440
440
  /**
@@ -453,37 +453,37 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
453
453
  * accordion-style facets.
454
454
  */
455
455
  get mobileLeftColumnTemplate() {
456
- return html `
457
- <div
458
- id="left-column"
459
- class="column${this.isResizeToMobile ? ' preload' : ''}"
460
- >
461
- ${this.facetTopViewSlot} ${this.resultsCountTemplate}
462
- <div id="facets-header-container">${this.mobileFacetsTemplate}</div>
463
- </div>
456
+ return html `
457
+ <div
458
+ id="left-column"
459
+ class="column${this.isResizeToMobile ? ' preload' : ''}"
460
+ >
461
+ ${this.facetTopViewSlot} ${this.resultsCountTemplate}
462
+ <div id="facets-header-container">${this.mobileFacetsTemplate}</div>
463
+ </div>
464
464
  `;
465
465
  }
466
466
  /**
467
467
  * Template for the desktop version of the left column, displaying the facets sidebar.
468
468
  */
469
469
  get desktopLeftColumnTemplate() {
470
- return html `
471
- <div
472
- id="left-column"
473
- class="column"
474
- ?hidden=${this.showSmartFacetBar && !this.facetPaneVisible}
475
- >
476
- ${this.facetTopViewSlot}
477
- <div id="facets-header-container">
478
- <h2 id="facets-header" class="sr-only">Filters</h2>
479
- ${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
480
- </div>
481
- <div id="facets-container" aria-labelledby="facets-header">
482
- ${this.facetsTemplate}
483
- <div id="facets-scroll-sentinel"></div>
484
- </div>
485
- <div id="facets-bottom-fade"></div>
486
- </div>
470
+ return html `
471
+ <div
472
+ id="left-column"
473
+ class="column"
474
+ ?hidden=${this.showSmartFacetBar && !this.facetPaneVisible}
475
+ >
476
+ ${this.facetTopViewSlot}
477
+ <div id="facets-header-container">
478
+ <h2 id="facets-header" class="sr-only">Filters</h2>
479
+ ${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
480
+ </div>
481
+ <div id="facets-container" aria-labelledby="facets-header">
482
+ ${this.facetsTemplate}
483
+ <div id="facets-scroll-sentinel"></div>
484
+ </div>
485
+ <div id="facets-bottom-fade"></div>
486
+ </div>
487
487
  `;
488
488
  }
489
489
  /**
@@ -491,8 +491,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
491
491
  * - mainly used to render userlists
492
492
  */
493
493
  get facetTopViewSlot() {
494
- return html `<div id="facet-top-view">
495
- <slot name="facet-top-slot"></slot>
494
+ return html `<div id="facet-top-view">
495
+ <slot name="facet-top-slot"></slot>
496
496
  </div>`;
497
497
  }
498
498
  /**
@@ -507,15 +507,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
507
507
  const resultsCount = (_a = this.totalResults) === null || _a === void 0 ? void 0 : _a.toLocaleString();
508
508
  const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
509
509
  // Added data-testid for Playwright testing
510
- return html `
511
- <div id="results-total" data-testid="results-total">
512
- <span id="big-results-count">
513
- ${shouldShowSearching ? html `Searching&hellip;` : resultsCount}
514
- </span>
515
- <span id="big-results-label">
516
- ${shouldShowSearching ? nothing : resultsLabel}
517
- </span>
518
- </div>
510
+ return html `
511
+ <div id="results-total" data-testid="results-total">
512
+ <span id="big-results-count">
513
+ ${shouldShowSearching ? html `Searching&hellip;` : resultsCount}
514
+ </span>
515
+ <span id="big-results-label">
516
+ ${shouldShowSearching ? nothing : resultsLabel}
517
+ </span>
518
+ </div>
519
519
  `;
520
520
  }
521
521
  /**
@@ -529,47 +529,47 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
529
529
  'full-width': this.showSmartFacetBar && !this.facetPaneVisible,
530
530
  'smart-results-spacing': !!this.showSmartResults,
531
531
  });
532
- return html `
533
- <div id="right-column" class=${rightColumnClasses}>
532
+ return html `
533
+ <div id="right-column" class=${rightColumnClasses}>
534
534
  ${this.showSmartResults
535
535
  ? html `<slot name="smart-results"></slot>`
536
- : nothing}
537
- <section id="results">
536
+ : nothing}
537
+ <section id="results">
538
538
  ${this.showSmartResults
539
- ? html `<h2 class="results-section-heading">
540
- ${(_a = this.resultsHeader) !== null && _a !== void 0 ? _a : msg('All results')}
539
+ ? html `<h2 class="results-section-heading">
540
+ ${(_a = this.resultsHeader) !== null && _a !== void 0 ? _a : msg('All results')}
541
541
  </h2>`
542
- : nothing}
543
- <div id="cb-top-view">
544
- <slot name="cb-top-slot"></slot>
545
- </div>
542
+ : nothing}
543
+ <div id="cb-top-view">
544
+ <slot name="cb-top-slot"></slot>
545
+ </div>
546
546
  ${this.isManageView
547
547
  ? this.manageBarTemplate
548
- : this.sortFilterBarTemplate}
549
- <slot name="cb-results"></slot>
548
+ : this.sortFilterBarTemplate}
549
+ <slot name="cb-results"></slot>
550
550
  ${this.displayMode === `list-compact` && this.totalResults
551
551
  ? this.listHeaderTemplate
552
- : nothing}
553
- ${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
554
- </section>
555
- </div>
552
+ : nothing}
553
+ ${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
554
+ </section>
555
+ </div>
556
556
  `;
557
557
  }
558
558
  /**
559
559
  * Template for the infinite scroller widget that contains the result tiles.
560
560
  */
561
561
  get infiniteScrollerTemplate() {
562
- return html `<infinite-scroller
563
- class=${this.infiniteScrollerClasses}
564
- itemCount=${this.placeholderType ? 0 : nothing}
565
- ariaLandmarkLabel="Search results"
566
- .cellProvider=${this}
567
- .placeholderCellTemplate=${this.placeholderCellTemplate}
568
- @scrollThresholdReached=${this.scrollThresholdReached}
569
- @visibleCellsChanged=${this.visibleCellsChanged}
562
+ return html `<infinite-scroller
563
+ class=${this.infiniteScrollerClasses}
564
+ itemCount=${this.placeholderType ? 0 : nothing}
565
+ ariaLandmarkLabel="Search results"
566
+ .cellProvider=${this}
567
+ .placeholderCellTemplate=${this.placeholderCellTemplate}
568
+ @scrollThresholdReached=${this.scrollThresholdReached}
569
+ @visibleCellsChanged=${this.visibleCellsChanged}
570
570
  >${this.displayMode === 'grid'
571
571
  ? html `<slot name="result-last-tile" slot="result-last-tile"></slot>`
572
- : nothing}
572
+ : nothing}
573
573
  </infinite-scroller>`;
574
574
  }
575
575
  /**
@@ -590,31 +590,31 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
590
590
  var _a;
591
591
  if (this.suppressSortBar)
592
592
  return nothing;
593
- return html `
594
- <sort-filter-bar
595
- .defaultSortField=${this.defaultSortField}
596
- .defaultSortDirection=${this.defaultSortDirection}
597
- .selectedSort=${this.selectedSort}
598
- .sortDirection=${this.sortDirection}
599
- .showRelevance=${this.isRelevanceSortAvailable}
600
- .showDateFavorited=${(_a = this.withinCollection) === null || _a === void 0 ? void 0 : _a.startsWith('fav-')}
601
- .displayMode=${this.displayMode}
602
- .selectedTitleFilter=${this.selectedTitleFilter}
603
- .selectedCreatorFilter=${this.selectedCreatorFilter}
604
- .prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
605
- .resizeObserver=${this.resizeObserver}
606
- .enableSortOptionsSlot=${this.enableSortOptionsSlot}
607
- .suppressDisplayModes=${this.suppressDisplayModes}
608
- @sortChanged=${this.userChangedSort}
609
- @displayModeChanged=${this.displayModeChanged}
610
- @titleLetterChanged=${this.titleLetterSelected}
611
- @creatorLetterChanged=${this.creatorLetterSelected}
612
- >
613
- ${this.tileBlurCheckboxTemplate}
614
- <slot name="sort-options-left" slot="sort-options-left"></slot>
615
- <slot name="sort-options" slot="sort-options"></slot>
616
- <slot name="sort-options-right" slot="sort-options-right"></slot>
617
- </sort-filter-bar>
593
+ return html `
594
+ <sort-filter-bar
595
+ .defaultSortField=${this.defaultSortField}
596
+ .defaultSortDirection=${this.defaultSortDirection}
597
+ .selectedSort=${this.selectedSort}
598
+ .sortDirection=${this.sortDirection}
599
+ .showRelevance=${this.isRelevanceSortAvailable}
600
+ .showDateFavorited=${(_a = this.withinCollection) === null || _a === void 0 ? void 0 : _a.startsWith('fav-')}
601
+ .displayMode=${this.displayMode}
602
+ .selectedTitleFilter=${this.selectedTitleFilter}
603
+ .selectedCreatorFilter=${this.selectedCreatorFilter}
604
+ .prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
605
+ .resizeObserver=${this.resizeObserver}
606
+ .enableSortOptionsSlot=${this.enableSortOptionsSlot}
607
+ .suppressDisplayModes=${this.suppressDisplayModes}
608
+ @sortChanged=${this.userChangedSort}
609
+ @displayModeChanged=${this.displayModeChanged}
610
+ @titleLetterChanged=${this.titleLetterSelected}
611
+ @creatorLetterChanged=${this.creatorLetterSelected}
612
+ >
613
+ ${this.tileBlurCheckboxTemplate}
614
+ <slot name="sort-options-left" slot="sort-options-left"></slot>
615
+ <slot name="sort-options" slot="sort-options"></slot>
616
+ <slot name="sort-options-right" slot="sort-options-right"></slot>
617
+ </sort-filter-bar>
618
618
  `;
619
619
  }
620
620
  /**
@@ -626,20 +626,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
626
626
  // Only show the checkbox for @archive.org users
627
627
  if (!((_a = this.dataSource.sessionContext) === null || _a === void 0 ? void 0 : _a.is_archive_user))
628
628
  return nothing;
629
- return html `
630
- <label
631
- id="tile-blur-label"
632
- for="tile-blur-check"
633
- slot="sort-options-right"
634
- >
635
- ${msg('Blurring')}
636
- <input
637
- id="tile-blur-check"
638
- type="checkbox"
639
- ?checked=${!this.shouldSuppressTileBlurring}
640
- @change=${this.tileBlurCheckboxChanged}
641
- />
642
- </label>
629
+ return html `
630
+ <label
631
+ id="tile-blur-label"
632
+ for="tile-blur-check"
633
+ slot="sort-options-right"
634
+ >
635
+ ${msg('Blurring')}
636
+ <input
637
+ id="tile-blur-check"
638
+ type="checkbox"
639
+ ?checked=${!this.shouldSuppressTileBlurring}
640
+ @change=${this.tileBlurCheckboxChanged}
641
+ />
642
+ </label>
643
643
  `;
644
644
  }
645
645
  /**
@@ -650,27 +650,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
650
650
  const manageViewModalMsg = this.profileElement === 'uploads'
651
651
  ? 'Note: it may take a few minutes for these items to stop appearing in your uploads list.'
652
652
  : nothing;
653
- return html `
654
- <manage-bar
655
- .label=${this.manageViewLabel}
656
- .modalManager=${this.modalManager}
657
- .selectedItems=${this.dataSource.checkedTileModels}
658
- .manageViewModalMsg=${manageViewModalMsg}
659
- showSelectAll
660
- showUnselectAll
661
- ?showItemManageButton=${this.pageContext === 'search'}
662
- ?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
663
- @removeItems=${this.handleRemoveItems}
664
- @manageItems=${this.handleManageItems}
665
- @selectAll=${() => this.dataSource.checkAllTiles()}
666
- @unselectAll=${() => this.dataSource.uncheckAllTiles()}
653
+ return html `
654
+ <manage-bar
655
+ .label=${this.manageViewLabel}
656
+ .modalManager=${this.modalManager}
657
+ .selectedItems=${this.dataSource.checkedTileModels}
658
+ .manageViewModalMsg=${manageViewModalMsg}
659
+ showSelectAll
660
+ showUnselectAll
661
+ ?showItemManageButton=${this.pageContext === 'search'}
662
+ ?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
663
+ @removeItems=${this.handleRemoveItems}
664
+ @manageItems=${this.handleManageItems}
665
+ @selectAll=${() => this.dataSource.checkAllTiles()}
666
+ @unselectAll=${() => this.dataSource.uncheckAllTiles()}
667
667
  @cancel=${() => {
668
668
  this.isManageView = false;
669
669
  this.dataSource.uncheckAllTiles();
670
670
  if (this.searchResultsLoading)
671
671
  this.dataSource.resetPages();
672
- }}
673
- ></manage-bar>
672
+ }}
673
+ ></manage-bar>
674
674
  `;
675
675
  }
676
676
  /**
@@ -918,15 +918,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
918
918
  label: target.open ? 'open' : 'closed',
919
919
  });
920
920
  };
921
- return html `
922
- <details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
923
- <summary>
924
- <span class="collapser-icon">${chevronIcon}</span>
925
- <h2>${msg('Filters')}</h2>
926
- ${this.clearFiltersBtnTemplate(true)}
927
- </summary>
928
- ${this.facetsTemplate}
929
- </details>
921
+ return html `
922
+ <details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
923
+ <summary>
924
+ <span class="collapser-icon">${chevronIcon}</span>
925
+ <h2>${msg('Filters')}</h2>
926
+ ${this.clearFiltersBtnTemplate(true)}
927
+ </summary>
928
+ ${this.facetsTemplate}
929
+ </details>
930
930
  `;
931
931
  }
932
932
  /**
@@ -936,10 +936,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
936
936
  if (FACETLESS_PAGE_ELEMENTS.includes(this.profileElement))
937
937
  return nothing;
938
938
  if (this.facetLoadStrategy === 'off') {
939
- return html `
940
- <p class="facets-message">
941
- ${msg('Facets are temporarily unavailable.')}
942
- </p>
939
+ return html `
940
+ <p class="facets-message">
941
+ ${msg('Facets are temporarily unavailable.')}
942
+ </p>
943
943
  `;
944
944
  }
945
945
  // We switch to TV facet ordering & date picker if we are in a TV collection or showing TV search results
@@ -948,44 +948,44 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
948
948
  const facetDisplayOrder = shouldUseTvInterface
949
949
  ? tvFacetDisplayOrder
950
950
  : defaultFacetDisplayOrder;
951
- const facets = html `
952
- <collection-facets
953
- .collectionPagePath=${this.collectionPagePath}
954
- .parentCollections=${this.dataSource.parentCollections}
955
- .pageSpecifierParams=${this.dataSource.pageSpecifierParams}
956
- .searchService=${this.searchService}
957
- .featureFeedbackService=${this.featureFeedbackService}
958
- .recaptchaManager=${this.recaptchaManager}
959
- .resizeObserver=${this.resizeObserver}
960
- .searchType=${this.searchType}
961
- .aggregations=${this.dataSource.aggregations}
962
- .histogramAggregation=${this.dataSource.histogramAggregation}
963
- .minSelectedDate=${this.minSelectedDate}
964
- .maxSelectedDate=${this.maxSelectedDate}
965
- .selectedFacets=${this.selectedFacets}
966
- .baseNavigationUrl=${this.baseNavigationUrl}
967
- .collectionTitles=${this.dataSource.collectionTitles}
968
- .tvChannelAliases=${this.dataSource.tvChannelAliases}
969
- .showHistogramDatePicker=${this.showHistogramDatePicker}
970
- .allowExpandingDatePicker=${!this.mobileView}
971
- .allowDatePickerMonths=${shouldUseTvInterface}
972
- .contentWidth=${this.contentWidth}
973
- .query=${this.baseQuery}
974
- .filterMap=${this.dataSource.filterMap}
975
- .isManageView=${this.isManageView}
976
- .modalManager=${this.modalManager}
977
- .analyticsHandler=${this.analyticsHandler}
978
- .facetDisplayOrder=${facetDisplayOrder}
979
- .isTvSearch=${shouldUseTvInterface}
980
- ?collapsableFacets=${this.mobileView}
981
- ?facetsLoading=${this.facetsLoading}
982
- ?histogramAggregationLoading=${this.facetsLoading}
983
- ?suppressMediatypeFacets=${this.suppressMediatypeFacets}
984
- @facetClick=${this.facetClickHandler}
985
- @facetsChanged=${this.facetsChanged}
986
- @histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
987
- >
988
- </collection-facets>
951
+ const facets = html `
952
+ <collection-facets
953
+ .collectionPagePath=${this.collectionPagePath}
954
+ .parentCollections=${this.dataSource.parentCollections}
955
+ .pageSpecifierParams=${this.dataSource.pageSpecifierParams}
956
+ .searchService=${this.searchService}
957
+ .featureFeedbackService=${this.featureFeedbackService}
958
+ .recaptchaManager=${this.recaptchaManager}
959
+ .resizeObserver=${this.resizeObserver}
960
+ .searchType=${this.searchType}
961
+ .aggregations=${this.dataSource.aggregations}
962
+ .histogramAggregation=${this.dataSource.histogramAggregation}
963
+ .minSelectedDate=${this.minSelectedDate}
964
+ .maxSelectedDate=${this.maxSelectedDate}
965
+ .selectedFacets=${this.selectedFacets}
966
+ .baseNavigationUrl=${this.baseNavigationUrl}
967
+ .collectionTitles=${this.dataSource.collectionTitles}
968
+ .tvChannelAliases=${this.dataSource.tvChannelAliases}
969
+ .showHistogramDatePicker=${this.showHistogramDatePicker}
970
+ .allowExpandingDatePicker=${!this.mobileView}
971
+ .allowDatePickerMonths=${shouldUseTvInterface}
972
+ .contentWidth=${this.contentWidth}
973
+ .query=${this.baseQuery}
974
+ .filterMap=${this.dataSource.filterMap}
975
+ .isManageView=${this.isManageView}
976
+ .modalManager=${this.modalManager}
977
+ .analyticsHandler=${this.analyticsHandler}
978
+ .facetDisplayOrder=${facetDisplayOrder}
979
+ .isTvSearch=${shouldUseTvInterface}
980
+ ?collapsableFacets=${this.mobileView}
981
+ ?facetsLoading=${this.facetsLoading}
982
+ ?histogramAggregationLoading=${this.facetsLoading}
983
+ ?suppressMediatypeFacets=${this.suppressMediatypeFacets}
984
+ @facetClick=${this.facetClickHandler}
985
+ @facetsChanged=${this.facetsChanged}
986
+ @histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
987
+ >
988
+ </collection-facets>
989
989
  `;
990
990
  // If we are using one of the opt-in facet load strategies, we may need to wrap the
991
991
  // desktop view facets in a <details> widget so that patrons can opt into loading them.
@@ -993,20 +993,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
993
993
  const showDesktopOptInWidget = this.facetLoadStrategy === 'opt-in' ||
994
994
  (this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
995
995
  if (showDesktopOptInWidget && !this.mobileView) {
996
- return html `
997
- <details
998
- class="desktop-facets-dropdown"
996
+ return html `
997
+ <details
998
+ class="desktop-facets-dropdown"
999
999
  @toggle=${(e) => {
1000
1000
  const target = e.target;
1001
1001
  this.collapsibleFacetsVisible = target.open;
1002
- }}
1003
- >
1004
- <summary>
1005
- <span class="collapser-icon">${chevronIcon}</span>
1006
- <h2>${msg('Filters')}</h2>
1007
- </summary>
1008
- ${facets}
1009
- </details>
1002
+ }}
1003
+ >
1004
+ <summary>
1005
+ <span class="collapser-icon">${chevronIcon}</span>
1006
+ <h2>${msg('Filters')}</h2>
1007
+ </summary>
1008
+ ${facets}
1009
+ </details>
1010
1010
  `;
1011
1011
  }
1012
1012
  // Otherwise, just render the facets component bare
@@ -1026,34 +1026,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1026
1026
  mobile,
1027
1027
  });
1028
1028
  const buttonText = mobile ? 'Clear all' : 'Clear all filters';
1029
- return html `
1030
- <div class="clear-filters-btn-row">
1029
+ return html `
1030
+ <div class="clear-filters-btn-row">
1031
1031
  ${mobile
1032
1032
  ? html `<span class="clear-filters-btn-separator">&nbsp;</span>`
1033
- : nothing}
1034
- <button class=${buttonClasses} @click=${this.clearFilters}>
1035
- ${buttonText}
1036
- </button>
1037
- </div>
1033
+ : nothing}
1034
+ <button class=${buttonClasses} @click=${this.clearFilters}>
1035
+ ${buttonText}
1036
+ </button>
1037
+ </div>
1038
1038
  `;
1039
1039
  }
1040
1040
  /**
1041
1041
  * Template for the table header content that appears atop the compact list view.
1042
1042
  */
1043
1043
  get listHeaderTemplate() {
1044
- return html `
1045
- <div id="list-header">
1046
- <tile-dispatcher
1047
- .tileDisplayMode=${'list-header'}
1048
- .resizeObserver=${this.resizeObserver}
1049
- .sortParam=${this.sortParam}
1050
- .defaultSortParam=${this.defaultSortParam}
1051
- .mobileBreakpoint=${this.mobileBreakpoint}
1052
- .loggedIn=${this.loggedIn}
1053
- .suppressBlurring=${this.shouldSuppressTileBlurring}
1054
- >
1055
- </tile-dispatcher>
1056
- </div>
1044
+ return html `
1045
+ <div id="list-header">
1046
+ <tile-dispatcher
1047
+ .tileDisplayMode=${'list-header'}
1048
+ .resizeObserver=${this.resizeObserver}
1049
+ .sortParam=${this.sortParam}
1050
+ .defaultSortParam=${this.defaultSortParam}
1051
+ .mobileBreakpoint=${this.mobileBreakpoint}
1052
+ .loggedIn=${this.loggedIn}
1053
+ .suppressBlurring=${this.shouldSuppressTileBlurring}
1054
+ >
1055
+ </tile-dispatcher>
1056
+ </div>
1057
1057
  `;
1058
1058
  }
1059
1059
  /**
@@ -1782,27 +1782,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1782
1782
  const model = this.tileModelAtCellIndex(index);
1783
1783
  if (!model)
1784
1784
  return undefined;
1785
- return html `
1786
- <tile-dispatcher
1787
- .collectionPagePath=${this.collectionPagePath}
1788
- .baseNavigationUrl=${this.baseNavigationUrl}
1789
- .baseImageUrl=${this.baseImageUrl}
1790
- .model=${model}
1791
- .tileDisplayMode=${this.displayMode}
1792
- .resizeObserver=${this.resizeObserver}
1793
- .collectionTitles=${this.dataSource.collectionTitles}
1794
- .sortParam=${this.sortParam}
1795
- .defaultSortParam=${this.defaultSortParam}
1796
- .creatorFilter=${this.selectedCreatorFilter}
1797
- .mobileBreakpoint=${this.mobileBreakpoint}
1798
- .loggedIn=${this.loggedIn}
1799
- .suppressBlurring=${this.shouldSuppressTileBlurring}
1800
- .isManageView=${this.isManageView}
1801
- ?showTvClips=${this.isTVCollection || this.searchType === SearchType.TV}
1802
- ?enableHoverPane=${true}
1803
- @resultSelected=${(e) => this.resultSelected(e)}
1804
- >
1805
- </tile-dispatcher>
1785
+ return html `
1786
+ <tile-dispatcher
1787
+ .collectionPagePath=${this.collectionPagePath}
1788
+ .baseNavigationUrl=${this.baseNavigationUrl}
1789
+ .baseImageUrl=${this.baseImageUrl}
1790
+ .model=${model}
1791
+ .tileDisplayMode=${this.displayMode}
1792
+ .resizeObserver=${this.resizeObserver}
1793
+ .collectionTitles=${this.dataSource.collectionTitles}
1794
+ .sortParam=${this.sortParam}
1795
+ .defaultSortParam=${this.defaultSortParam}
1796
+ .creatorFilter=${this.selectedCreatorFilter}
1797
+ .mobileBreakpoint=${this.mobileBreakpoint}
1798
+ .loggedIn=${this.loggedIn}
1799
+ .suppressBlurring=${this.shouldSuppressTileBlurring}
1800
+ .isManageView=${this.isManageView}
1801
+ ?showTvClips=${this.isTVCollection || this.searchType === SearchType.TV}
1802
+ ?enableHoverPane=${true}
1803
+ @resultSelected=${(e) => this.resultSelected(e)}
1804
+ >
1805
+ </tile-dispatcher>
1806
1806
  `;
1807
1807
  }
1808
1808
  /**
@@ -1838,440 +1838,440 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
1838
1838
  static get styles() {
1839
1839
  return [
1840
1840
  srOnlyStyle,
1841
- css `
1842
- :host {
1843
- display: block;
1844
- --leftColumnWidth: 18rem;
1845
- --leftColumnPaddingTop: 2rem;
1846
- --leftColumnPaddingRight: 2.5rem;
1847
- }
1848
-
1849
- #facet-top-view {
1850
- display: flex;
1851
- }
1852
-
1853
- /**
1854
- * When page width resizes from desktop to mobile, use this class to
1855
- * disable expand/collapse transition when loading.
1856
- */
1857
- .preload * {
1858
- transition: none !important;
1859
- -webkit-transition: none !important;
1860
- -moz-transition: none !important;
1861
- -ms-transition: none !important;
1862
- -o-transition: none !important;
1863
- }
1864
-
1865
- #content-container {
1866
- display: flex;
1867
- }
1868
-
1869
- empty-placeholder {
1870
- margin-top: var(--placeholderMarginTop, 0);
1871
- }
1872
-
1873
- .collapser-icon {
1874
- display: inline-block;
1875
- }
1876
-
1877
- .collapser-icon svg {
1878
- display: inline-block;
1879
- width: 12px;
1880
- height: 12px;
1881
- transition: transform 0.2s ease-out;
1882
- }
1883
-
1884
- #mobile-filter-collapse {
1885
- width: 100%;
1886
- }
1887
-
1888
- #mobile-filter-collapse > summary {
1889
- cursor: pointer;
1890
- list-style: none;
1891
- }
1892
-
1893
- #mobile-filter-collapse[open] > summary {
1894
- margin-bottom: 10px;
1895
- }
1896
-
1897
- #mobile-filter-collapse h2 {
1898
- display: inline-block;
1899
- margin: 0;
1900
- font-size: 2rem;
1901
- }
1902
-
1903
- #mobile-filter-collapse[open] svg {
1904
- transform: rotate(90deg);
1905
- }
1906
-
1907
- #content-container.mobile {
1908
- display: block;
1909
- }
1910
-
1911
- #right-column {
1912
- flex: 1;
1913
- position: relative;
1914
- min-height: 90vh;
1915
- border-right: 1px solid rgb(232, 232, 232);
1916
- margin-top: var(--rightColumnMarginTop, 0);
1917
- padding-top: 2rem;
1918
- background: #fff;
1919
- }
1920
-
1921
- #left-column:not([hidden]) + #right-column {
1922
- border-left: 1px solid rgb(232, 232, 232);
1923
- }
1924
-
1925
- #right-column.smart-results-spacing {
1926
- padding-top: 0.5rem;
1927
- border-right: none;
1928
- background: transparent;
1929
- min-width: 0;
1930
- }
1931
-
1932
- #results {
1933
- background: #fff;
1934
- padding-left: 1rem;
1935
- padding-right: 1rem;
1936
- }
1937
-
1938
- #right-column.smart-results-spacing #results {
1939
- border-radius: 10px 10px 0px 0px;
1940
- padding-top: 0.5rem;
1941
- margin-top: 1rem;
1942
- }
1943
-
1944
- .mobile #right-column {
1945
- border-left: none;
1946
- }
1947
-
1948
- .mobile #results {
1949
- padding: 5px 5px 0;
1950
- }
1951
-
1952
- #left-column {
1953
- width: var(--leftColumnWidth, 18rem);
1954
- /* Prevents Safari from shrinking col at first draw */
1955
- min-width: var(--leftColumnWidth, 18rem);
1956
- padding-top: var(--leftColumnPaddingTop, 2rem);
1957
- /* Reduced padding by 0.2rem to add the invisible border in the rule below */
1958
- padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
1959
- border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
1960
- z-index: 1;
1961
- }
1962
-
1963
- .desktop #left-column {
1964
- top: 0;
1965
- position: sticky;
1966
- height: calc(100vh - 2rem);
1967
- max-height: calc(100vh - 2rem);
1968
- overflow-x: hidden;
1969
- overflow-y: scroll;
1970
-
1971
- /*
1972
- * Firefox doesn't support any of the -webkit-scrollbar stuff below, but
1973
- * does at least give us a tiny bit of control over width & color.
1974
- */
1975
- scrollbar-width: thin;
1976
- scrollbar-color: transparent transparent;
1977
- }
1978
- .desktop #left-column:hover {
1979
- scrollbar-color: auto;
1980
- }
1981
- .desktop #left-column::-webkit-scrollbar {
1982
- appearance: none;
1983
- width: 6px;
1984
- }
1985
- .desktop #left-column::-webkit-scrollbar-button {
1986
- height: 3px;
1987
- background: transparent;
1988
- }
1989
- .desktop #left-column::-webkit-scrollbar-corner {
1990
- background: transparent;
1991
- }
1992
- .desktop #left-column::-webkit-scrollbar-thumb {
1993
- border-radius: 4px;
1994
- }
1995
- .desktop #left-column:hover::-webkit-scrollbar-thumb {
1996
- background: rgba(0, 0, 0, 0.15);
1997
- }
1998
- .desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
1999
- background: rgba(0, 0, 0, 0.2);
2000
- }
2001
- .desktop #left-column:hover::-webkit-scrollbar-thumb:active {
2002
- background: rgba(0, 0, 0, 0.3);
2003
- }
2004
-
2005
- #facets-bottom-fade {
2006
- background: linear-gradient(
2007
- to bottom,
2008
- #f5f5f700 0%,
2009
- #f5f5f7c0 50%,
2010
- #f5f5f7 80%,
2011
- #f5f5f7 100%
2012
- );
2013
- position: fixed;
2014
- bottom: 0;
2015
- height: 50px;
2016
- /* Wide enough to cover the content, but leave the scrollbar uncovered */
2017
- width: calc(
2018
- var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
2019
- );
2020
- z-index: 2;
2021
- pointer-events: none;
2022
- transition: height 0.1s ease;
2023
- }
2024
- #facets-bottom-fade.hidden {
2025
- height: 0;
2026
- }
2027
-
2028
- .facets-message {
2029
- font-size: 1.4rem;
2030
- }
2031
-
2032
- .desktop-facets-dropdown > summary {
2033
- cursor: pointer;
2034
- list-style: none;
2035
- }
2036
-
2037
- .desktop-facets-dropdown h2 {
2038
- display: inline-block;
2039
- margin: 0;
2040
- font-size: 1.6rem;
2041
- }
2042
-
2043
- .desktop-facets-dropdown[open] > summary {
2044
- margin-bottom: 10px;
2045
- }
2046
-
2047
- .desktop-facets-dropdown[open] svg {
2048
- transform: rotate(90deg);
2049
- }
2050
-
2051
- .desktop #left-column-scroll-sentinel {
2052
- width: 1px;
2053
- height: 100vh;
2054
- background: transparent;
2055
- }
2056
-
2057
- .desktop #facets-scroll-sentinel {
2058
- width: 1px;
2059
- height: 1px;
2060
- background: transparent;
2061
- }
2062
-
2063
- #facets-header-container {
2064
- display: flex;
2065
- justify-content: space-between;
2066
- align-items: flex-start;
2067
- clear: both;
2068
- }
2069
-
2070
- .desktop #facets-header-container {
2071
- flex-wrap: wrap;
2072
- }
2073
-
2074
- .mobile #left-column {
2075
- width: 100%;
2076
- min-width: 0;
2077
- padding: 5px 0;
2078
- border: 0;
2079
- }
2080
-
2081
- .clear-filters-btn-row {
2082
- display: inline-block;
2083
- }
2084
-
2085
- .desktop .clear-filters-btn-row {
2086
- width: 100%;
2087
- }
2088
-
2089
- .clear-filters-btn {
2090
- display: inline-block;
2091
- appearance: none;
2092
- margin: 0;
2093
- padding: 0;
2094
- border: 0;
2095
- background: none;
2096
- color: var(--ia-theme-link-color);
2097
- font-size: 1.4rem;
2098
- font-family: inherit;
2099
- cursor: pointer;
2100
- }
2101
-
2102
- .clear-filters-btn:hover {
2103
- text-decoration: underline;
2104
- }
2105
-
2106
- .clear-filters-btn-separator {
2107
- display: inline-block;
2108
- margin-left: 5px;
2109
- border-left: 1px solid #2c2c2c;
2110
- font-size: 1.4rem;
2111
- line-height: 1.3rem;
2112
- }
2113
-
2114
- #facets-container {
2115
- position: relative;
2116
- max-height: 0;
2117
- transition: max-height 0.2s ease-in-out;
2118
- z-index: 1;
2119
- margin-top: 5rem;
2120
- padding-bottom: 2rem;
2121
- }
2122
-
2123
- .desktop #facets-container {
2124
- width: 18rem;
2125
- }
2126
-
2127
- .mobile #facets-container {
2128
- overflow: hidden;
2129
- padding-bottom: 0;
2130
- padding-left: 10px;
2131
- padding-right: 10px;
2132
- }
2133
-
2134
- #facets-container.expanded {
2135
- max-height: 2000px;
2136
- }
2137
-
2138
- .results-section-heading {
2139
- margin: 0.5rem 0.3rem;
2140
- font-size: 2rem;
2141
- line-height: 25px;
2142
- }
2143
-
2144
- #results-total {
2145
- display: flex;
2146
- align-items: baseline;
2147
- }
2148
-
2149
- .mobile #results-total {
2150
- position: absolute;
2151
- right: 10px;
2152
- }
2153
-
2154
- #big-results-count {
2155
- font-size: 2.4rem;
2156
- font-weight: 500;
2157
- margin-right: 5px;
2158
- }
2159
-
2160
- .mobile #big-results-count {
2161
- font-size: 2rem;
2162
- }
2163
-
2164
- #big-results-label {
2165
- font-size: 1.4rem;
2166
- font-weight: 200;
2167
- }
2168
-
2169
- #list-header {
2170
- max-height: 4.2rem;
2171
- }
2172
-
2173
- .loading-cover {
2174
- position: absolute;
2175
- top: 0;
2176
- left: 0;
2177
- width: 100%;
2178
- height: 100%;
2179
- display: flex;
2180
- justify-content: center;
2181
- z-index: 1;
2182
- padding-top: 50px;
2183
- }
2184
-
2185
- #tile-blur-label {
2186
- display: flex;
2187
- align-items: center;
2188
- column-gap: 5px;
2189
- }
2190
-
2191
- #tile-blur-check {
2192
- margin: 0 5px 0 0;
2193
- }
2194
-
2195
- circular-activity-indicator {
2196
- width: 30px;
2197
- height: 30px;
2198
- }
2199
-
2200
- sort-filter-bar {
2201
- display: block;
2202
- margin-bottom: 4rem;
2203
- }
2204
-
2205
- infinite-scroller {
2206
- display: block;
2207
- --infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
2208
- --infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
2209
- }
2210
-
2211
- infinite-scroller.list-compact {
2212
- --infiniteScrollerCellMinWidth: var(
2213
- --collectionBrowserCellMinWidth,
2214
- 100%
2215
- );
2216
- --infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
2217
- --infiniteScrollerCellMaxHeight: 56px;
2218
- --infiniteScrollerRowGap: 10px;
2219
- }
2220
-
2221
- infinite-scroller.list-detail {
2222
- --infiniteScrollerCellMinWidth: var(
2223
- --collectionBrowserCellMinWidth,
2224
- 100%
2225
- );
2226
- --infiniteScrollerCellMinHeight: var(
2227
- --collectionBrowserCellMinHeight,
2228
- 5rem
2229
- );
2230
- /*
2231
- 30px in spec, compensating for a -4px margin
2232
- to align title with top of item image
2233
- src/tiles/list/tile-list.ts
2234
- */
2235
- --infiniteScrollerRowGap: 34px;
2236
- }
2237
-
2238
- .mobile infinite-scroller.list-detail {
2239
- --infiniteScrollerRowGap: 24px;
2240
- }
2241
-
2242
- infinite-scroller.grid {
2243
- --infiniteScrollerCellMinWidth: var(
2244
- --collectionBrowserCellMinWidth,
2245
- 17rem
2246
- );
2247
- --infiniteScrollerCellMaxWidth: var(
2248
- --collectionBrowserCellMaxWidth,
2249
- 1fr
2250
- );
2251
- }
2252
-
2253
- /* Allow tiles to shrink a bit further at smaller viewport widths */
2254
- @media screen and (max-width: 880px) {
2255
- infinite-scroller.grid {
2256
- --infiniteScrollerCellMinWidth: var(
2257
- --collectionBrowserCellMinWidth,
2258
- 15rem
2259
- );
2260
- }
2261
- }
2262
- /* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
2263
- @media screen and (max-width: 360px) {
2264
- infinite-scroller.grid {
2265
- --infiniteScrollerCellMinWidth: var(
2266
- --collectionBrowserCellMinWidth,
2267
- 12rem
2268
- );
2269
- }
2270
- }
2271
-
2272
- infinite-scroller.hidden {
2273
- display: none;
2274
- }
1841
+ css `
1842
+ :host {
1843
+ display: block;
1844
+ --leftColumnWidth: 18rem;
1845
+ --leftColumnPaddingTop: 2rem;
1846
+ --leftColumnPaddingRight: 2.5rem;
1847
+ }
1848
+
1849
+ #facet-top-view {
1850
+ display: flex;
1851
+ }
1852
+
1853
+ /**
1854
+ * When page width resizes from desktop to mobile, use this class to
1855
+ * disable expand/collapse transition when loading.
1856
+ */
1857
+ .preload * {
1858
+ transition: none !important;
1859
+ -webkit-transition: none !important;
1860
+ -moz-transition: none !important;
1861
+ -ms-transition: none !important;
1862
+ -o-transition: none !important;
1863
+ }
1864
+
1865
+ #content-container {
1866
+ display: flex;
1867
+ }
1868
+
1869
+ empty-placeholder {
1870
+ margin-top: var(--placeholderMarginTop, 0);
1871
+ }
1872
+
1873
+ .collapser-icon {
1874
+ display: inline-block;
1875
+ }
1876
+
1877
+ .collapser-icon svg {
1878
+ display: inline-block;
1879
+ width: 12px;
1880
+ height: 12px;
1881
+ transition: transform 0.2s ease-out;
1882
+ }
1883
+
1884
+ #mobile-filter-collapse {
1885
+ width: 100%;
1886
+ }
1887
+
1888
+ #mobile-filter-collapse > summary {
1889
+ cursor: pointer;
1890
+ list-style: none;
1891
+ }
1892
+
1893
+ #mobile-filter-collapse[open] > summary {
1894
+ margin-bottom: 10px;
1895
+ }
1896
+
1897
+ #mobile-filter-collapse h2 {
1898
+ display: inline-block;
1899
+ margin: 0;
1900
+ font-size: 2rem;
1901
+ }
1902
+
1903
+ #mobile-filter-collapse[open] svg {
1904
+ transform: rotate(90deg);
1905
+ }
1906
+
1907
+ #content-container.mobile {
1908
+ display: block;
1909
+ }
1910
+
1911
+ #right-column {
1912
+ flex: 1;
1913
+ position: relative;
1914
+ min-height: 90vh;
1915
+ border-right: 1px solid rgb(232, 232, 232);
1916
+ margin-top: var(--rightColumnMarginTop, 0);
1917
+ padding-top: 2rem;
1918
+ background: #fff;
1919
+ }
1920
+
1921
+ #left-column:not([hidden]) + #right-column {
1922
+ border-left: 1px solid rgb(232, 232, 232);
1923
+ }
1924
+
1925
+ #right-column.smart-results-spacing {
1926
+ padding-top: 0.5rem;
1927
+ border-right: none;
1928
+ background: transparent;
1929
+ min-width: 0;
1930
+ }
1931
+
1932
+ #results {
1933
+ background: #fff;
1934
+ padding-left: 1rem;
1935
+ padding-right: 1rem;
1936
+ }
1937
+
1938
+ #right-column.smart-results-spacing #results {
1939
+ border-radius: 10px 10px 0px 0px;
1940
+ padding-top: 0.5rem;
1941
+ margin-top: 1rem;
1942
+ }
1943
+
1944
+ .mobile #right-column {
1945
+ border-left: none;
1946
+ }
1947
+
1948
+ .mobile #results {
1949
+ padding: 5px 5px 0;
1950
+ }
1951
+
1952
+ #left-column {
1953
+ width: var(--leftColumnWidth, 18rem);
1954
+ /* Prevents Safari from shrinking col at first draw */
1955
+ min-width: var(--leftColumnWidth, 18rem);
1956
+ padding-top: var(--leftColumnPaddingTop, 2rem);
1957
+ /* Reduced padding by 0.2rem to add the invisible border in the rule below */
1958
+ padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
1959
+ border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
1960
+ z-index: 1;
1961
+ }
1962
+
1963
+ .desktop #left-column {
1964
+ top: 0;
1965
+ position: sticky;
1966
+ height: calc(100vh - 2rem);
1967
+ max-height: calc(100vh - 2rem);
1968
+ overflow-x: hidden;
1969
+ overflow-y: scroll;
1970
+
1971
+ /*
1972
+ * Firefox doesn't support any of the -webkit-scrollbar stuff below, but
1973
+ * does at least give us a tiny bit of control over width & color.
1974
+ */
1975
+ scrollbar-width: thin;
1976
+ scrollbar-color: transparent transparent;
1977
+ }
1978
+ .desktop #left-column:hover {
1979
+ scrollbar-color: auto;
1980
+ }
1981
+ .desktop #left-column::-webkit-scrollbar {
1982
+ appearance: none;
1983
+ width: 6px;
1984
+ }
1985
+ .desktop #left-column::-webkit-scrollbar-button {
1986
+ height: 3px;
1987
+ background: transparent;
1988
+ }
1989
+ .desktop #left-column::-webkit-scrollbar-corner {
1990
+ background: transparent;
1991
+ }
1992
+ .desktop #left-column::-webkit-scrollbar-thumb {
1993
+ border-radius: 4px;
1994
+ }
1995
+ .desktop #left-column:hover::-webkit-scrollbar-thumb {
1996
+ background: rgba(0, 0, 0, 0.15);
1997
+ }
1998
+ .desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
1999
+ background: rgba(0, 0, 0, 0.2);
2000
+ }
2001
+ .desktop #left-column:hover::-webkit-scrollbar-thumb:active {
2002
+ background: rgba(0, 0, 0, 0.3);
2003
+ }
2004
+
2005
+ #facets-bottom-fade {
2006
+ background: linear-gradient(
2007
+ to bottom,
2008
+ #f5f5f700 0%,
2009
+ #f5f5f7c0 50%,
2010
+ #f5f5f7 80%,
2011
+ #f5f5f7 100%
2012
+ );
2013
+ position: fixed;
2014
+ bottom: 0;
2015
+ height: 50px;
2016
+ /* Wide enough to cover the content, but leave the scrollbar uncovered */
2017
+ width: calc(
2018
+ var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
2019
+ );
2020
+ z-index: 2;
2021
+ pointer-events: none;
2022
+ transition: height 0.1s ease;
2023
+ }
2024
+ #facets-bottom-fade.hidden {
2025
+ height: 0;
2026
+ }
2027
+
2028
+ .facets-message {
2029
+ font-size: 1.4rem;
2030
+ }
2031
+
2032
+ .desktop-facets-dropdown > summary {
2033
+ cursor: pointer;
2034
+ list-style: none;
2035
+ }
2036
+
2037
+ .desktop-facets-dropdown h2 {
2038
+ display: inline-block;
2039
+ margin: 0;
2040
+ font-size: 1.6rem;
2041
+ }
2042
+
2043
+ .desktop-facets-dropdown[open] > summary {
2044
+ margin-bottom: 10px;
2045
+ }
2046
+
2047
+ .desktop-facets-dropdown[open] svg {
2048
+ transform: rotate(90deg);
2049
+ }
2050
+
2051
+ .desktop #left-column-scroll-sentinel {
2052
+ width: 1px;
2053
+ height: 100vh;
2054
+ background: transparent;
2055
+ }
2056
+
2057
+ .desktop #facets-scroll-sentinel {
2058
+ width: 1px;
2059
+ height: 1px;
2060
+ background: transparent;
2061
+ }
2062
+
2063
+ #facets-header-container {
2064
+ display: flex;
2065
+ justify-content: space-between;
2066
+ align-items: flex-start;
2067
+ clear: both;
2068
+ }
2069
+
2070
+ .desktop #facets-header-container {
2071
+ flex-wrap: wrap;
2072
+ }
2073
+
2074
+ .mobile #left-column {
2075
+ width: 100%;
2076
+ min-width: 0;
2077
+ padding: 5px 0;
2078
+ border: 0;
2079
+ }
2080
+
2081
+ .clear-filters-btn-row {
2082
+ display: inline-block;
2083
+ }
2084
+
2085
+ .desktop .clear-filters-btn-row {
2086
+ width: 100%;
2087
+ }
2088
+
2089
+ .clear-filters-btn {
2090
+ display: inline-block;
2091
+ appearance: none;
2092
+ margin: 0;
2093
+ padding: 0;
2094
+ border: 0;
2095
+ background: none;
2096
+ color: var(--ia-theme-link-color);
2097
+ font-size: 1.4rem;
2098
+ font-family: inherit;
2099
+ cursor: pointer;
2100
+ }
2101
+
2102
+ .clear-filters-btn:hover {
2103
+ text-decoration: underline;
2104
+ }
2105
+
2106
+ .clear-filters-btn-separator {
2107
+ display: inline-block;
2108
+ margin-left: 5px;
2109
+ border-left: 1px solid #2c2c2c;
2110
+ font-size: 1.4rem;
2111
+ line-height: 1.3rem;
2112
+ }
2113
+
2114
+ #facets-container {
2115
+ position: relative;
2116
+ max-height: 0;
2117
+ transition: max-height 0.2s ease-in-out;
2118
+ z-index: 1;
2119
+ margin-top: 5rem;
2120
+ padding-bottom: 2rem;
2121
+ }
2122
+
2123
+ .desktop #facets-container {
2124
+ width: 18rem;
2125
+ }
2126
+
2127
+ .mobile #facets-container {
2128
+ overflow: hidden;
2129
+ padding-bottom: 0;
2130
+ padding-left: 10px;
2131
+ padding-right: 10px;
2132
+ }
2133
+
2134
+ #facets-container.expanded {
2135
+ max-height: 2000px;
2136
+ }
2137
+
2138
+ .results-section-heading {
2139
+ margin: 0.5rem 0.3rem;
2140
+ font-size: 2rem;
2141
+ line-height: 25px;
2142
+ }
2143
+
2144
+ #results-total {
2145
+ display: flex;
2146
+ align-items: baseline;
2147
+ }
2148
+
2149
+ .mobile #results-total {
2150
+ position: absolute;
2151
+ right: 10px;
2152
+ }
2153
+
2154
+ #big-results-count {
2155
+ font-size: 2.4rem;
2156
+ font-weight: 500;
2157
+ margin-right: 5px;
2158
+ }
2159
+
2160
+ .mobile #big-results-count {
2161
+ font-size: 2rem;
2162
+ }
2163
+
2164
+ #big-results-label {
2165
+ font-size: 1.4rem;
2166
+ font-weight: 200;
2167
+ }
2168
+
2169
+ #list-header {
2170
+ max-height: 4.2rem;
2171
+ }
2172
+
2173
+ .loading-cover {
2174
+ position: absolute;
2175
+ top: 0;
2176
+ left: 0;
2177
+ width: 100%;
2178
+ height: 100%;
2179
+ display: flex;
2180
+ justify-content: center;
2181
+ z-index: 1;
2182
+ padding-top: 50px;
2183
+ }
2184
+
2185
+ #tile-blur-label {
2186
+ display: flex;
2187
+ align-items: center;
2188
+ column-gap: 5px;
2189
+ }
2190
+
2191
+ #tile-blur-check {
2192
+ margin: 0 5px 0 0;
2193
+ }
2194
+
2195
+ circular-activity-indicator {
2196
+ width: 30px;
2197
+ height: 30px;
2198
+ }
2199
+
2200
+ sort-filter-bar {
2201
+ display: block;
2202
+ margin-bottom: 4rem;
2203
+ }
2204
+
2205
+ infinite-scroller {
2206
+ display: block;
2207
+ --infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
2208
+ --infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
2209
+ }
2210
+
2211
+ infinite-scroller.list-compact {
2212
+ --infiniteScrollerCellMinWidth: var(
2213
+ --collectionBrowserCellMinWidth,
2214
+ 100%
2215
+ );
2216
+ --infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
2217
+ --infiniteScrollerCellMaxHeight: 56px;
2218
+ --infiniteScrollerRowGap: 10px;
2219
+ }
2220
+
2221
+ infinite-scroller.list-detail {
2222
+ --infiniteScrollerCellMinWidth: var(
2223
+ --collectionBrowserCellMinWidth,
2224
+ 100%
2225
+ );
2226
+ --infiniteScrollerCellMinHeight: var(
2227
+ --collectionBrowserCellMinHeight,
2228
+ 5rem
2229
+ );
2230
+ /*
2231
+ 30px in spec, compensating for a -4px margin
2232
+ to align title with top of item image
2233
+ src/tiles/list/tile-list.ts
2234
+ */
2235
+ --infiniteScrollerRowGap: 34px;
2236
+ }
2237
+
2238
+ .mobile infinite-scroller.list-detail {
2239
+ --infiniteScrollerRowGap: 24px;
2240
+ }
2241
+
2242
+ infinite-scroller.grid {
2243
+ --infiniteScrollerCellMinWidth: var(
2244
+ --collectionBrowserCellMinWidth,
2245
+ 17rem
2246
+ );
2247
+ --infiniteScrollerCellMaxWidth: var(
2248
+ --collectionBrowserCellMaxWidth,
2249
+ 1fr
2250
+ );
2251
+ }
2252
+
2253
+ /* Allow tiles to shrink a bit further at smaller viewport widths */
2254
+ @media screen and (max-width: 880px) {
2255
+ infinite-scroller.grid {
2256
+ --infiniteScrollerCellMinWidth: var(
2257
+ --collectionBrowserCellMinWidth,
2258
+ 15rem
2259
+ );
2260
+ }
2261
+ }
2262
+ /* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
2263
+ @media screen and (max-width: 360px) {
2264
+ infinite-scroller.grid {
2265
+ --infiniteScrollerCellMinWidth: var(
2266
+ --collectionBrowserCellMinWidth,
2267
+ 12rem
2268
+ );
2269
+ }
2270
+ }
2271
+
2272
+ infinite-scroller.hidden {
2273
+ display: none;
2274
+ }
2275
2275
  `,
2276
2276
  ];
2277
2277
  }