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