@internetarchive/collection-browser 2.22.1-alpha-webdev7818.5 → 2.22.1-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +29 -29
- package/.github/workflows/ci.yml +27 -27
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +4 -4
- package/.prettierignore +1 -1
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/src/collection-browser.d.ts +6 -3
- package/dist/src/collection-browser.js +691 -681
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/manage/manage-bar.d.ts +4 -0
- package/dist/src/manage/manage-bar.js +21 -0
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.js +45 -45
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.js +97 -97
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +289 -289
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/test/collection-browser.test.js +187 -187
- package/dist/test/collection-browser.test.js.map +1 -1
- package/eslint.config.mjs +53 -53
- package/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +117 -117
- package/renovate.json +6 -6
- package/src/collection-browser.ts +2763 -2755
- package/src/data-source/collection-browser-data-source-interface.ts +333 -333
- package/src/data-source/collection-browser-data-source.ts +1390 -1390
- package/src/manage/manage-bar.ts +23 -0
- package/src/tiles/list/tile-list-compact-header.ts +86 -86
- package/src/tiles/list/tile-list-compact.ts +236 -236
- package/src/tiles/list/tile-list.ts +688 -688
- package/test/collection-browser.test.ts +2359 -2359
- package/tsconfig.json +20 -20
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -125,7 +125,7 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
125
125
|
this.manageViewLabel = 'Select items to remove';
|
|
126
126
|
/** Whether to replace the default sort options with a slot for customization (default: false) */
|
|
127
127
|
this.enableSortOptionsSlot = false;
|
|
128
|
-
/** Whether to
|
|
128
|
+
/** Whether to display a smart results carousel above the full results */
|
|
129
129
|
this.showSmartResults = false;
|
|
130
130
|
/**
|
|
131
131
|
* The maximum number of pages we will load when a privileged user clicks
|
|
@@ -358,32 +358,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
358
358
|
this.setPlaceholderType();
|
|
359
359
|
}
|
|
360
360
|
render() {
|
|
361
|
-
return html `
|
|
361
|
+
return html `
|
|
362
362
|
${this.showSmartFacetBar && this.placeholderType === null
|
|
363
|
-
? html `<smart-facet-bar
|
|
364
|
-
.query=${this.baseQuery}
|
|
365
|
-
.aggregations=${this.dataSource.aggregations}
|
|
366
|
-
.selectedFacets=${this.selectedFacets}
|
|
367
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
368
|
-
.filterToggleShown=${!this.mobileView}
|
|
369
|
-
.filterToggleActive=${this.facetPaneVisible}
|
|
370
|
-
.label=${this.smartFacetBarLabel}
|
|
371
|
-
@facetsChanged=${this.facetsChanged}
|
|
363
|
+
? html `<smart-facet-bar
|
|
364
|
+
.query=${this.baseQuery}
|
|
365
|
+
.aggregations=${this.dataSource.aggregations}
|
|
366
|
+
.selectedFacets=${this.selectedFacets}
|
|
367
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
368
|
+
.filterToggleShown=${!this.mobileView}
|
|
369
|
+
.filterToggleActive=${this.facetPaneVisible}
|
|
370
|
+
.label=${this.smartFacetBarLabel}
|
|
371
|
+
@facetsChanged=${this.facetsChanged}
|
|
372
372
|
@filtersToggled=${() => {
|
|
373
373
|
this.facetPaneVisible = !this.facetPaneVisible;
|
|
374
374
|
this.emitFacetPaneVisibilityChanged();
|
|
375
|
-
}}
|
|
375
|
+
}}
|
|
376
376
|
></smart-facet-bar>`
|
|
377
|
-
: nothing}
|
|
378
|
-
|
|
379
|
-
<div
|
|
380
|
-
id="content-container"
|
|
381
|
-
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
382
|
-
>
|
|
377
|
+
: nothing}
|
|
378
|
+
|
|
379
|
+
<div
|
|
380
|
+
id="content-container"
|
|
381
|
+
class=${this.mobileView ? 'mobile' : 'desktop'}
|
|
382
|
+
>
|
|
383
383
|
${this.placeholderType
|
|
384
384
|
? this.emptyPlaceholderTemplate
|
|
385
|
-
: this.collectionBrowserTemplate}
|
|
386
|
-
</div>
|
|
385
|
+
: this.collectionBrowserTemplate}
|
|
386
|
+
</div>
|
|
387
387
|
`;
|
|
388
388
|
}
|
|
389
389
|
/**
|
|
@@ -427,23 +427,23 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
427
427
|
*/
|
|
428
428
|
get emptyPlaceholderTemplate() {
|
|
429
429
|
var _a;
|
|
430
|
-
return html `
|
|
431
|
-
<empty-placeholder
|
|
432
|
-
.placeholderType=${this.placeholderType}
|
|
433
|
-
?isMobileView=${this.mobileView}
|
|
434
|
-
?isCollection=${!!this.withinCollection}
|
|
435
|
-
.detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
|
|
436
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
437
|
-
></empty-placeholder>
|
|
430
|
+
return html `
|
|
431
|
+
<empty-placeholder
|
|
432
|
+
.placeholderType=${this.placeholderType}
|
|
433
|
+
?isMobileView=${this.mobileView}
|
|
434
|
+
?isCollection=${!!this.withinCollection}
|
|
435
|
+
.detailMessage=${(_a = this.dataSource.queryErrorMessage) !== null && _a !== void 0 ? _a : ''}
|
|
436
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
437
|
+
></empty-placeholder>
|
|
438
438
|
`;
|
|
439
439
|
}
|
|
440
440
|
/**
|
|
441
441
|
* Top-level template for rendering the left (facets) and right (results) columns.
|
|
442
442
|
*/
|
|
443
443
|
get collectionBrowserTemplate() {
|
|
444
|
-
return html `
|
|
445
|
-
<div id="left-column-scroll-sentinel"></div>
|
|
446
|
-
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
444
|
+
return html `
|
|
445
|
+
<div id="left-column-scroll-sentinel"></div>
|
|
446
|
+
${this.leftColumnTemplate} ${this.rightColumnTemplate}
|
|
447
447
|
`;
|
|
448
448
|
}
|
|
449
449
|
/**
|
|
@@ -462,33 +462,33 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
462
462
|
* accordion-style facets.
|
|
463
463
|
*/
|
|
464
464
|
get mobileLeftColumnTemplate() {
|
|
465
|
-
return html `
|
|
466
|
-
<div
|
|
467
|
-
id="left-column"
|
|
468
|
-
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
469
|
-
>
|
|
470
|
-
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
471
|
-
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
472
|
-
</div>
|
|
465
|
+
return html `
|
|
466
|
+
<div
|
|
467
|
+
id="left-column"
|
|
468
|
+
class="column${this.isResizeToMobile ? ' preload' : ''}"
|
|
469
|
+
>
|
|
470
|
+
${this.facetTopViewSlot} ${this.resultsCountTemplate}
|
|
471
|
+
<div id="facets-header-container">${this.mobileFacetsTemplate}</div>
|
|
472
|
+
</div>
|
|
473
473
|
`;
|
|
474
474
|
}
|
|
475
475
|
/**
|
|
476
476
|
* Template for the desktop version of the left column, displaying the facets sidebar.
|
|
477
477
|
*/
|
|
478
478
|
get desktopLeftColumnTemplate() {
|
|
479
|
-
return html `
|
|
480
|
-
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
481
|
-
${this.facetTopViewSlot}
|
|
482
|
-
<div id="facets-header-container">
|
|
483
|
-
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
484
|
-
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
485
|
-
</div>
|
|
486
|
-
<div id="facets-container" aria-labelledby="facets-header">
|
|
487
|
-
${this.facetsTemplate}
|
|
488
|
-
<div id="facets-scroll-sentinel"></div>
|
|
489
|
-
</div>
|
|
490
|
-
<div id="facets-bottom-fade"></div>
|
|
491
|
-
</div>
|
|
479
|
+
return html `
|
|
480
|
+
<div id="left-column" class="column" ?hidden=${!this.facetPaneVisible}>
|
|
481
|
+
${this.facetTopViewSlot}
|
|
482
|
+
<div id="facets-header-container">
|
|
483
|
+
<h2 id="facets-header" class="sr-only">${msg('Filters')}</h2>
|
|
484
|
+
${this.resultsCountTemplate} ${this.clearFiltersBtnTemplate(false)}
|
|
485
|
+
</div>
|
|
486
|
+
<div id="facets-container" aria-labelledby="facets-header">
|
|
487
|
+
${this.facetsTemplate}
|
|
488
|
+
<div id="facets-scroll-sentinel"></div>
|
|
489
|
+
</div>
|
|
490
|
+
<div id="facets-bottom-fade"></div>
|
|
491
|
+
</div>
|
|
492
492
|
`;
|
|
493
493
|
}
|
|
494
494
|
/**
|
|
@@ -496,8 +496,8 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
496
496
|
* - mainly used to render userlists
|
|
497
497
|
*/
|
|
498
498
|
get facetTopViewSlot() {
|
|
499
|
-
return html `<div id="facet-top-view">
|
|
500
|
-
<slot name="facet-top-slot"></slot>
|
|
499
|
+
return html `<div id="facet-top-view">
|
|
500
|
+
<slot name="facet-top-slot"></slot>
|
|
501
501
|
</div>`;
|
|
502
502
|
}
|
|
503
503
|
/**
|
|
@@ -512,15 +512,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
512
512
|
const resultsCount = (_a = this.totalResults) === null || _a === void 0 ? void 0 : _a.toLocaleString();
|
|
513
513
|
const resultsLabel = this.totalResults === 1 ? 'Result' : 'Results';
|
|
514
514
|
// Added data-testid for Playwright testing
|
|
515
|
-
return html `
|
|
516
|
-
<div id="results-total" data-testid="results-total">
|
|
517
|
-
<span id="big-results-count">
|
|
518
|
-
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
519
|
-
</span>
|
|
520
|
-
<span id="big-results-label">
|
|
521
|
-
${shouldShowSearching ? nothing : resultsLabel}
|
|
522
|
-
</span>
|
|
523
|
-
</div>
|
|
515
|
+
return html `
|
|
516
|
+
<div id="results-total" data-testid="results-total">
|
|
517
|
+
<span id="big-results-count">
|
|
518
|
+
${shouldShowSearching ? html `Searching…` : resultsCount}
|
|
519
|
+
</span>
|
|
520
|
+
<span id="big-results-label">
|
|
521
|
+
${shouldShowSearching ? nothing : resultsLabel}
|
|
522
|
+
</span>
|
|
523
|
+
</div>
|
|
524
524
|
`;
|
|
525
525
|
}
|
|
526
526
|
/**
|
|
@@ -528,50 +528,53 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
528
528
|
* tiles and sort/filter bar are shown.
|
|
529
529
|
*/
|
|
530
530
|
get rightColumnTemplate() {
|
|
531
|
+
var _a;
|
|
531
532
|
const rightColumnClasses = classMap({
|
|
532
533
|
column: true,
|
|
533
534
|
'full-width': !this.facetPaneVisible,
|
|
534
535
|
'smart-results-spacing': !!this.showSmartResults,
|
|
535
536
|
});
|
|
536
|
-
return html `
|
|
537
|
-
<div id="right-column" class=${rightColumnClasses}>
|
|
537
|
+
return html `
|
|
538
|
+
<div id="right-column" class=${rightColumnClasses}>
|
|
538
539
|
${this.showSmartResults
|
|
539
540
|
? html `<slot name="smart-results"></slot>`
|
|
540
|
-
: nothing}
|
|
541
|
-
<section id="results">
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
541
|
+
: nothing}
|
|
542
|
+
<section id="results">
|
|
543
|
+
${this.showSmartResults
|
|
544
|
+
? html `<h2 class="results-section-heading">
|
|
545
|
+
${(_a = this.resultsHeader) !== null && _a !== void 0 ? _a : msg('All results')}
|
|
546
|
+
</h2>`
|
|
547
|
+
: nothing}
|
|
548
|
+
<div id="cb-top-view">
|
|
549
|
+
<slot name="cb-top-slot"></slot>
|
|
550
|
+
</div>
|
|
548
551
|
${this.isManageView
|
|
549
552
|
? this.manageBarTemplate
|
|
550
|
-
: this.sortFilterBarTemplate}
|
|
551
|
-
<slot name="cb-results"></slot>
|
|
553
|
+
: this.sortFilterBarTemplate}
|
|
554
|
+
<slot name="cb-results"></slot>
|
|
552
555
|
${this.displayMode === `list-compact` && this.totalResults
|
|
553
556
|
? this.listHeaderTemplate
|
|
554
|
-
: nothing}
|
|
555
|
-
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
556
|
-
</section>
|
|
557
|
-
</div>
|
|
557
|
+
: nothing}
|
|
558
|
+
${this.suppressResultTiles ? nothing : this.infiniteScrollerTemplate}
|
|
559
|
+
</section>
|
|
560
|
+
</div>
|
|
558
561
|
`;
|
|
559
562
|
}
|
|
560
563
|
/**
|
|
561
564
|
* Template for the infinite scroller widget that contains the result tiles.
|
|
562
565
|
*/
|
|
563
566
|
get infiniteScrollerTemplate() {
|
|
564
|
-
return html `<infinite-scroller
|
|
565
|
-
class=${this.infiniteScrollerClasses}
|
|
566
|
-
itemCount=${this.placeholderType ? 0 : nothing}
|
|
567
|
-
ariaLandmarkLabel="Search results"
|
|
568
|
-
.cellProvider=${this}
|
|
569
|
-
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
570
|
-
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
571
|
-
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
567
|
+
return html `<infinite-scroller
|
|
568
|
+
class=${this.infiniteScrollerClasses}
|
|
569
|
+
itemCount=${this.placeholderType ? 0 : nothing}
|
|
570
|
+
ariaLandmarkLabel="Search results"
|
|
571
|
+
.cellProvider=${this}
|
|
572
|
+
.placeholderCellTemplate=${this.placeholderCellTemplate}
|
|
573
|
+
@scrollThresholdReached=${this.scrollThresholdReached}
|
|
574
|
+
@visibleCellsChanged=${this.visibleCellsChanged}
|
|
572
575
|
>${this.displayMode === 'grid'
|
|
573
576
|
? html `<slot name="result-last-tile" slot="result-last-tile"></slot>`
|
|
574
|
-
: nothing}
|
|
577
|
+
: nothing}
|
|
575
578
|
</infinite-scroller>`;
|
|
576
579
|
}
|
|
577
580
|
/**
|
|
@@ -612,32 +615,32 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
612
615
|
}
|
|
613
616
|
// We only show relevance sort if a search query is currently defined
|
|
614
617
|
sortFieldAvailability.relevance = this.isRelevanceSortAvailable;
|
|
615
|
-
return html `
|
|
616
|
-
<sort-filter-bar
|
|
617
|
-
.defaultSortField=${this.defaultSortField}
|
|
618
|
-
.defaultSortDirection=${this.defaultSortDirection}
|
|
619
|
-
.defaultViewSort=${defaultViewSort}
|
|
620
|
-
.defaultDateSort=${defaultDateSort}
|
|
621
|
-
.selectedSort=${this.selectedSort}
|
|
622
|
-
.sortDirection=${this.sortDirection}
|
|
623
|
-
.sortFieldAvailability=${sortFieldAvailability}
|
|
624
|
-
.displayMode=${this.displayMode}
|
|
625
|
-
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
626
|
-
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
627
|
-
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
628
|
-
.resizeObserver=${this.resizeObserver}
|
|
629
|
-
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
630
|
-
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
631
|
-
@sortChanged=${this.userChangedSort}
|
|
632
|
-
@displayModeChanged=${this.displayModeChanged}
|
|
633
|
-
@titleLetterChanged=${this.titleLetterSelected}
|
|
634
|
-
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
635
|
-
>
|
|
636
|
-
${this.tileBlurCheckboxTemplate}
|
|
637
|
-
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
638
|
-
<slot name="sort-options" slot="sort-options"></slot>
|
|
639
|
-
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
640
|
-
</sort-filter-bar>
|
|
618
|
+
return html `
|
|
619
|
+
<sort-filter-bar
|
|
620
|
+
.defaultSortField=${this.defaultSortField}
|
|
621
|
+
.defaultSortDirection=${this.defaultSortDirection}
|
|
622
|
+
.defaultViewSort=${defaultViewSort}
|
|
623
|
+
.defaultDateSort=${defaultDateSort}
|
|
624
|
+
.selectedSort=${this.selectedSort}
|
|
625
|
+
.sortDirection=${this.sortDirection}
|
|
626
|
+
.sortFieldAvailability=${sortFieldAvailability}
|
|
627
|
+
.displayMode=${this.displayMode}
|
|
628
|
+
.selectedTitleFilter=${this.selectedTitleFilter}
|
|
629
|
+
.selectedCreatorFilter=${this.selectedCreatorFilter}
|
|
630
|
+
.prefixFilterCountMap=${this.dataSource.prefixFilterCountMap}
|
|
631
|
+
.resizeObserver=${this.resizeObserver}
|
|
632
|
+
.enableSortOptionsSlot=${this.enableSortOptionsSlot}
|
|
633
|
+
.suppressDisplayModes=${this.suppressDisplayModes}
|
|
634
|
+
@sortChanged=${this.userChangedSort}
|
|
635
|
+
@displayModeChanged=${this.displayModeChanged}
|
|
636
|
+
@titleLetterChanged=${this.titleLetterSelected}
|
|
637
|
+
@creatorLetterChanged=${this.creatorLetterSelected}
|
|
638
|
+
>
|
|
639
|
+
${this.tileBlurCheckboxTemplate}
|
|
640
|
+
<slot name="sort-options-left" slot="sort-options-left"></slot>
|
|
641
|
+
<slot name="sort-options" slot="sort-options"></slot>
|
|
642
|
+
<slot name="sort-options-right" slot="sort-options-right"></slot>
|
|
643
|
+
</sort-filter-bar>
|
|
641
644
|
`;
|
|
642
645
|
}
|
|
643
646
|
/**
|
|
@@ -649,20 +652,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
649
652
|
// Only show the checkbox for @archive.org users
|
|
650
653
|
if (!((_a = this.dataSource.sessionContext) === null || _a === void 0 ? void 0 : _a.is_archive_user))
|
|
651
654
|
return nothing;
|
|
652
|
-
return html `
|
|
653
|
-
<label
|
|
654
|
-
id="tile-blur-label"
|
|
655
|
-
for="tile-blur-check"
|
|
656
|
-
slot="sort-options-right"
|
|
657
|
-
>
|
|
658
|
-
${msg('Blurring')}
|
|
659
|
-
<input
|
|
660
|
-
id="tile-blur-check"
|
|
661
|
-
type="checkbox"
|
|
662
|
-
?checked=${!this.shouldSuppressTileBlurring}
|
|
663
|
-
@change=${this.tileBlurCheckboxChanged}
|
|
664
|
-
/>
|
|
665
|
-
</label>
|
|
655
|
+
return html `
|
|
656
|
+
<label
|
|
657
|
+
id="tile-blur-label"
|
|
658
|
+
for="tile-blur-check"
|
|
659
|
+
slot="sort-options-right"
|
|
660
|
+
>
|
|
661
|
+
${msg('Blurring')}
|
|
662
|
+
<input
|
|
663
|
+
id="tile-blur-check"
|
|
664
|
+
type="checkbox"
|
|
665
|
+
?checked=${!this.shouldSuppressTileBlurring}
|
|
666
|
+
@change=${this.tileBlurCheckboxChanged}
|
|
667
|
+
/>
|
|
668
|
+
</label>
|
|
666
669
|
`;
|
|
667
670
|
}
|
|
668
671
|
/**
|
|
@@ -673,27 +676,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
673
676
|
const manageViewModalMsg = this.profileElement === 'uploads'
|
|
674
677
|
? 'Note: it may take a few minutes for these items to stop appearing in your uploads list.'
|
|
675
678
|
: nothing;
|
|
676
|
-
return html `
|
|
677
|
-
<manage-bar
|
|
678
|
-
.label=${this.manageViewLabel}
|
|
679
|
-
.modalManager=${this.modalManager}
|
|
680
|
-
.selectedItems=${this.dataSource.checkedTileModels}
|
|
681
|
-
.manageViewModalMsg=${manageViewModalMsg}
|
|
682
|
-
showSelectAll
|
|
683
|
-
showUnselectAll
|
|
684
|
-
?showItemManageButton=${this.pageContext === 'search'}
|
|
685
|
-
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
686
|
-
@removeItems=${this.handleRemoveItems}
|
|
687
|
-
@manageItems=${this.handleManageItems}
|
|
688
|
-
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
689
|
-
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
679
|
+
return html `
|
|
680
|
+
<manage-bar
|
|
681
|
+
.label=${this.manageViewLabel}
|
|
682
|
+
.modalManager=${this.modalManager}
|
|
683
|
+
.selectedItems=${this.dataSource.checkedTileModels}
|
|
684
|
+
.manageViewModalMsg=${manageViewModalMsg}
|
|
685
|
+
showSelectAll
|
|
686
|
+
showUnselectAll
|
|
687
|
+
?showItemManageButton=${this.pageContext === 'search'}
|
|
688
|
+
?removeAllowed=${this.dataSource.checkedTileModels.length !== 0}
|
|
689
|
+
@removeItems=${this.handleRemoveItems}
|
|
690
|
+
@manageItems=${this.handleManageItems}
|
|
691
|
+
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
692
|
+
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
690
693
|
@cancel=${() => {
|
|
691
694
|
this.isManageView = false;
|
|
692
695
|
this.dataSource.uncheckAllTiles();
|
|
693
696
|
if (this.searchResultsLoading)
|
|
694
697
|
this.dataSource.resetPages();
|
|
695
|
-
}}
|
|
696
|
-
></manage-bar>
|
|
698
|
+
}}
|
|
699
|
+
></manage-bar>
|
|
697
700
|
`;
|
|
698
701
|
}
|
|
699
702
|
/**
|
|
@@ -727,6 +730,13 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
727
730
|
var _a;
|
|
728
731
|
(_a = this.smartFacetBar) === null || _a === void 0 ? void 0 : _a.refresh();
|
|
729
732
|
}
|
|
733
|
+
/**
|
|
734
|
+
* Handler to show success modal when item removal succeeded
|
|
735
|
+
*/
|
|
736
|
+
showRemoveItemsSuccessModal() {
|
|
737
|
+
var _a;
|
|
738
|
+
(_a = this.manageBar) === null || _a === void 0 ? void 0 : _a.showRemoveItemsSuccessModal();
|
|
739
|
+
}
|
|
730
740
|
/**
|
|
731
741
|
* Handler to show processing modal while removing item
|
|
732
742
|
*/
|
|
@@ -941,15 +951,15 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
941
951
|
label: target.open ? 'open' : 'closed',
|
|
942
952
|
});
|
|
943
953
|
};
|
|
944
|
-
return html `
|
|
945
|
-
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
946
|
-
<summary>
|
|
947
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
948
|
-
<h2>${msg('Filters')}</h2>
|
|
949
|
-
${this.clearFiltersBtnTemplate(true)}
|
|
950
|
-
</summary>
|
|
951
|
-
${this.facetsTemplate}
|
|
952
|
-
</details>
|
|
954
|
+
return html `
|
|
955
|
+
<details id="mobile-filter-collapse" @toggle=${toggleFacetsVisible}>
|
|
956
|
+
<summary>
|
|
957
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
958
|
+
<h2>${msg('Filters')}</h2>
|
|
959
|
+
${this.clearFiltersBtnTemplate(true)}
|
|
960
|
+
</summary>
|
|
961
|
+
${this.facetsTemplate}
|
|
962
|
+
</details>
|
|
953
963
|
`;
|
|
954
964
|
}
|
|
955
965
|
/**
|
|
@@ -959,10 +969,10 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
959
969
|
if (FACETLESS_PAGE_ELEMENTS.includes(this.profileElement))
|
|
960
970
|
return nothing;
|
|
961
971
|
if (this.facetLoadStrategy === 'off') {
|
|
962
|
-
return html `
|
|
963
|
-
<p class="facets-message">
|
|
964
|
-
${msg('Facets are temporarily unavailable.')}
|
|
965
|
-
</p>
|
|
972
|
+
return html `
|
|
973
|
+
<p class="facets-message">
|
|
974
|
+
${msg('Facets are temporarily unavailable.')}
|
|
975
|
+
</p>
|
|
966
976
|
`;
|
|
967
977
|
}
|
|
968
978
|
// We switch to TV facet ordering & date picker if we are in a TV collection or showing TV search results
|
|
@@ -971,44 +981,44 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
971
981
|
const facetDisplayOrder = shouldUseTvInterface
|
|
972
982
|
? tvFacetDisplayOrder
|
|
973
983
|
: defaultFacetDisplayOrder;
|
|
974
|
-
const facets = html `
|
|
975
|
-
<collection-facets
|
|
976
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
977
|
-
.parentCollections=${this.dataSource.parentCollections}
|
|
978
|
-
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
979
|
-
.searchService=${this.searchService}
|
|
980
|
-
.featureFeedbackService=${this.featureFeedbackService}
|
|
981
|
-
.recaptchaManager=${this.recaptchaManager}
|
|
982
|
-
.resizeObserver=${this.resizeObserver}
|
|
983
|
-
.searchType=${this.searchType}
|
|
984
|
-
.aggregations=${this.dataSource.aggregations}
|
|
985
|
-
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
986
|
-
.minSelectedDate=${this.minSelectedDate}
|
|
987
|
-
.maxSelectedDate=${this.maxSelectedDate}
|
|
988
|
-
.selectedFacets=${this.selectedFacets}
|
|
989
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
990
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
991
|
-
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
992
|
-
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
993
|
-
.allowExpandingDatePicker=${!this.mobileView}
|
|
994
|
-
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
995
|
-
.contentWidth=${this.contentWidth}
|
|
996
|
-
.query=${this.baseQuery}
|
|
997
|
-
.filterMap=${this.dataSource.filterMap}
|
|
998
|
-
.isManageView=${this.isManageView}
|
|
999
|
-
.modalManager=${this.modalManager}
|
|
1000
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
1001
|
-
.facetDisplayOrder=${facetDisplayOrder}
|
|
1002
|
-
.isTvSearch=${shouldUseTvInterface}
|
|
1003
|
-
?collapsableFacets=${this.mobileView}
|
|
1004
|
-
?facetsLoading=${this.facetsLoading}
|
|
1005
|
-
?histogramAggregationLoading=${this.facetsLoading}
|
|
1006
|
-
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1007
|
-
@facetClick=${this.facetClickHandler}
|
|
1008
|
-
@facetsChanged=${this.facetsChanged}
|
|
1009
|
-
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1010
|
-
>
|
|
1011
|
-
</collection-facets>
|
|
984
|
+
const facets = html `
|
|
985
|
+
<collection-facets
|
|
986
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
987
|
+
.parentCollections=${this.dataSource.parentCollections}
|
|
988
|
+
.pageSpecifierParams=${this.dataSource.pageSpecifierParams}
|
|
989
|
+
.searchService=${this.searchService}
|
|
990
|
+
.featureFeedbackService=${this.featureFeedbackService}
|
|
991
|
+
.recaptchaManager=${this.recaptchaManager}
|
|
992
|
+
.resizeObserver=${this.resizeObserver}
|
|
993
|
+
.searchType=${this.searchType}
|
|
994
|
+
.aggregations=${this.dataSource.aggregations}
|
|
995
|
+
.histogramAggregation=${this.dataSource.histogramAggregation}
|
|
996
|
+
.minSelectedDate=${this.minSelectedDate}
|
|
997
|
+
.maxSelectedDate=${this.maxSelectedDate}
|
|
998
|
+
.selectedFacets=${this.selectedFacets}
|
|
999
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1000
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1001
|
+
.tvChannelAliases=${this.dataSource.tvChannelAliases}
|
|
1002
|
+
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
1003
|
+
.allowExpandingDatePicker=${!this.mobileView}
|
|
1004
|
+
.allowDatePickerMonths=${shouldUseTvInterface}
|
|
1005
|
+
.contentWidth=${this.contentWidth}
|
|
1006
|
+
.query=${this.baseQuery}
|
|
1007
|
+
.filterMap=${this.dataSource.filterMap}
|
|
1008
|
+
.isManageView=${this.isManageView}
|
|
1009
|
+
.modalManager=${this.modalManager}
|
|
1010
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
1011
|
+
.facetDisplayOrder=${facetDisplayOrder}
|
|
1012
|
+
.isTvSearch=${shouldUseTvInterface}
|
|
1013
|
+
?collapsableFacets=${this.mobileView}
|
|
1014
|
+
?facetsLoading=${this.facetsLoading}
|
|
1015
|
+
?histogramAggregationLoading=${this.facetsLoading}
|
|
1016
|
+
?suppressMediatypeFacets=${this.suppressMediatypeFacets}
|
|
1017
|
+
@facetClick=${this.facetClickHandler}
|
|
1018
|
+
@facetsChanged=${this.facetsChanged}
|
|
1019
|
+
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
1020
|
+
>
|
|
1021
|
+
</collection-facets>
|
|
1012
1022
|
`;
|
|
1013
1023
|
// If we are using one of the opt-in facet load strategies, we may need to wrap the
|
|
1014
1024
|
// desktop view facets in a <details> widget so that patrons can opt into loading them.
|
|
@@ -1016,20 +1026,20 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1016
1026
|
const showDesktopOptInWidget = this.facetLoadStrategy === 'opt-in' ||
|
|
1017
1027
|
(this.facetLoadStrategy === 'opt-in-or-login' && !this.loggedIn);
|
|
1018
1028
|
if (showDesktopOptInWidget && !this.mobileView) {
|
|
1019
|
-
return html `
|
|
1020
|
-
<details
|
|
1021
|
-
class="desktop-facets-dropdown"
|
|
1029
|
+
return html `
|
|
1030
|
+
<details
|
|
1031
|
+
class="desktop-facets-dropdown"
|
|
1022
1032
|
@toggle=${(e) => {
|
|
1023
1033
|
const target = e.target;
|
|
1024
1034
|
this.collapsibleFacetsVisible = target.open;
|
|
1025
|
-
}}
|
|
1026
|
-
>
|
|
1027
|
-
<summary>
|
|
1028
|
-
<span class="collapser-icon">${chevronIcon}</span>
|
|
1029
|
-
<h2>${msg('Filters')}</h2>
|
|
1030
|
-
</summary>
|
|
1031
|
-
${facets}
|
|
1032
|
-
</details>
|
|
1035
|
+
}}
|
|
1036
|
+
>
|
|
1037
|
+
<summary>
|
|
1038
|
+
<span class="collapser-icon">${chevronIcon}</span>
|
|
1039
|
+
<h2>${msg('Filters')}</h2>
|
|
1040
|
+
</summary>
|
|
1041
|
+
${facets}
|
|
1042
|
+
</details>
|
|
1033
1043
|
`;
|
|
1034
1044
|
}
|
|
1035
1045
|
// Otherwise, just render the facets component bare
|
|
@@ -1049,34 +1059,34 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1049
1059
|
mobile,
|
|
1050
1060
|
});
|
|
1051
1061
|
const buttonText = mobile ? 'Clear all' : 'Clear all filters';
|
|
1052
|
-
return html `
|
|
1053
|
-
<div class="clear-filters-btn-row">
|
|
1062
|
+
return html `
|
|
1063
|
+
<div class="clear-filters-btn-row">
|
|
1054
1064
|
${mobile
|
|
1055
1065
|
? html `<span class="clear-filters-btn-separator"> </span>`
|
|
1056
|
-
: nothing}
|
|
1057
|
-
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1058
|
-
${buttonText}
|
|
1059
|
-
</button>
|
|
1060
|
-
</div>
|
|
1066
|
+
: nothing}
|
|
1067
|
+
<button class=${buttonClasses} @click=${this.clearFilters}>
|
|
1068
|
+
${buttonText}
|
|
1069
|
+
</button>
|
|
1070
|
+
</div>
|
|
1061
1071
|
`;
|
|
1062
1072
|
}
|
|
1063
1073
|
/**
|
|
1064
1074
|
* Template for the table header content that appears atop the compact list view.
|
|
1065
1075
|
*/
|
|
1066
1076
|
get listHeaderTemplate() {
|
|
1067
|
-
return html `
|
|
1068
|
-
<div id="list-header">
|
|
1069
|
-
<tile-dispatcher
|
|
1070
|
-
.tileDisplayMode=${'list-header'}
|
|
1071
|
-
.resizeObserver=${this.resizeObserver}
|
|
1072
|
-
.sortParam=${this.sortParam}
|
|
1073
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1074
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1075
|
-
.loggedIn=${this.loggedIn}
|
|
1076
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1077
|
-
>
|
|
1078
|
-
</tile-dispatcher>
|
|
1079
|
-
</div>
|
|
1077
|
+
return html `
|
|
1078
|
+
<div id="list-header">
|
|
1079
|
+
<tile-dispatcher
|
|
1080
|
+
.tileDisplayMode=${'list-header'}
|
|
1081
|
+
.resizeObserver=${this.resizeObserver}
|
|
1082
|
+
.sortParam=${this.sortParam}
|
|
1083
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1084
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1085
|
+
.loggedIn=${this.loggedIn}
|
|
1086
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1087
|
+
>
|
|
1088
|
+
</tile-dispatcher>
|
|
1089
|
+
</div>
|
|
1080
1090
|
`;
|
|
1081
1091
|
}
|
|
1082
1092
|
/**
|
|
@@ -1805,27 +1815,27 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1805
1815
|
const model = this.tileModelAtCellIndex(index);
|
|
1806
1816
|
if (!model)
|
|
1807
1817
|
return undefined;
|
|
1808
|
-
return html `
|
|
1809
|
-
<tile-dispatcher
|
|
1810
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
1811
|
-
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1812
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
1813
|
-
.model=${model}
|
|
1814
|
-
.tileDisplayMode=${this.displayMode}
|
|
1815
|
-
.resizeObserver=${this.resizeObserver}
|
|
1816
|
-
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1817
|
-
.sortParam=${this.sortParam}
|
|
1818
|
-
.defaultSortParam=${this.defaultSortParam}
|
|
1819
|
-
.creatorFilter=${this.selectedCreatorFilter}
|
|
1820
|
-
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1821
|
-
.loggedIn=${this.loggedIn}
|
|
1822
|
-
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1823
|
-
.isManageView=${this.isManageView}
|
|
1824
|
-
?showTvClips=${this.isTVCollection || this.searchType === SearchType.TV}
|
|
1825
|
-
?enableHoverPane=${true}
|
|
1826
|
-
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1827
|
-
>
|
|
1828
|
-
</tile-dispatcher>
|
|
1818
|
+
return html `
|
|
1819
|
+
<tile-dispatcher
|
|
1820
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
1821
|
+
.baseNavigationUrl=${this.baseNavigationUrl}
|
|
1822
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
1823
|
+
.model=${model}
|
|
1824
|
+
.tileDisplayMode=${this.displayMode}
|
|
1825
|
+
.resizeObserver=${this.resizeObserver}
|
|
1826
|
+
.collectionTitles=${this.dataSource.collectionTitles}
|
|
1827
|
+
.sortParam=${this.sortParam}
|
|
1828
|
+
.defaultSortParam=${this.defaultSortParam}
|
|
1829
|
+
.creatorFilter=${this.selectedCreatorFilter}
|
|
1830
|
+
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
1831
|
+
.loggedIn=${this.loggedIn}
|
|
1832
|
+
.suppressBlurring=${this.shouldSuppressTileBlurring}
|
|
1833
|
+
.isManageView=${this.isManageView}
|
|
1834
|
+
?showTvClips=${this.isTVCollection || this.searchType === SearchType.TV}
|
|
1835
|
+
?enableHoverPane=${true}
|
|
1836
|
+
@resultSelected=${(e) => this.resultSelected(e)}
|
|
1837
|
+
>
|
|
1838
|
+
</tile-dispatcher>
|
|
1829
1839
|
`;
|
|
1830
1840
|
}
|
|
1831
1841
|
/**
|
|
@@ -1861,440 +1871,440 @@ let CollectionBrowser = class CollectionBrowser extends LitElement {
|
|
|
1861
1871
|
static get styles() {
|
|
1862
1872
|
return [
|
|
1863
1873
|
srOnlyStyle,
|
|
1864
|
-
css `
|
|
1865
|
-
:host {
|
|
1866
|
-
display: block;
|
|
1867
|
-
--leftColumnWidth: 18rem;
|
|
1868
|
-
--leftColumnPaddingTop: 2rem;
|
|
1869
|
-
--leftColumnPaddingRight: 2.5rem;
|
|
1870
|
-
}
|
|
1871
|
-
|
|
1872
|
-
#facet-top-view {
|
|
1873
|
-
display: flex;
|
|
1874
|
-
}
|
|
1875
|
-
|
|
1876
|
-
/**
|
|
1877
|
-
* When page width resizes from desktop to mobile, use this class to
|
|
1878
|
-
* disable expand/collapse transition when loading.
|
|
1879
|
-
*/
|
|
1880
|
-
.preload * {
|
|
1881
|
-
transition: none !important;
|
|
1882
|
-
-webkit-transition: none !important;
|
|
1883
|
-
-moz-transition: none !important;
|
|
1884
|
-
-ms-transition: none !important;
|
|
1885
|
-
-o-transition: none !important;
|
|
1886
|
-
}
|
|
1887
|
-
|
|
1888
|
-
#content-container {
|
|
1889
|
-
display: flex;
|
|
1890
|
-
}
|
|
1891
|
-
|
|
1892
|
-
empty-placeholder {
|
|
1893
|
-
margin-top: var(--placeholderMarginTop, 0);
|
|
1894
|
-
}
|
|
1895
|
-
|
|
1896
|
-
.collapser-icon {
|
|
1897
|
-
display: inline-block;
|
|
1898
|
-
}
|
|
1899
|
-
|
|
1900
|
-
.collapser-icon svg {
|
|
1901
|
-
display: inline-block;
|
|
1902
|
-
width: 12px;
|
|
1903
|
-
height: 12px;
|
|
1904
|
-
transition: transform 0.2s ease-out;
|
|
1905
|
-
}
|
|
1906
|
-
|
|
1907
|
-
#mobile-filter-collapse {
|
|
1908
|
-
width: 100%;
|
|
1909
|
-
}
|
|
1910
|
-
|
|
1911
|
-
#mobile-filter-collapse > summary {
|
|
1912
|
-
cursor: pointer;
|
|
1913
|
-
list-style: none;
|
|
1914
|
-
}
|
|
1915
|
-
|
|
1916
|
-
#mobile-filter-collapse[open] > summary {
|
|
1917
|
-
margin-bottom: 10px;
|
|
1918
|
-
}
|
|
1919
|
-
|
|
1920
|
-
#mobile-filter-collapse h2 {
|
|
1921
|
-
display: inline-block;
|
|
1922
|
-
margin: 0;
|
|
1923
|
-
font-size: 2rem;
|
|
1924
|
-
}
|
|
1925
|
-
|
|
1926
|
-
#mobile-filter-collapse[open] svg {
|
|
1927
|
-
transform: rotate(90deg);
|
|
1928
|
-
}
|
|
1929
|
-
|
|
1930
|
-
#content-container.mobile {
|
|
1931
|
-
display: block;
|
|
1932
|
-
}
|
|
1933
|
-
|
|
1934
|
-
#right-column {
|
|
1935
|
-
flex: 1;
|
|
1936
|
-
position: relative;
|
|
1937
|
-
min-height: 90vh;
|
|
1938
|
-
border-right: 1px solid rgb(232, 232, 232);
|
|
1939
|
-
margin-top: var(--rightColumnMarginTop, 0);
|
|
1940
|
-
padding-top:
|
|
1941
|
-
background: #fff;
|
|
1942
|
-
}
|
|
1943
|
-
|
|
1944
|
-
#left-column:not([hidden]) + #right-column {
|
|
1945
|
-
border-left: 1px solid rgb(232, 232, 232);
|
|
1946
|
-
}
|
|
1947
|
-
|
|
1948
|
-
#right-column.smart-results-spacing {
|
|
1949
|
-
padding-top: 0.5rem;
|
|
1950
|
-
border-right: none;
|
|
1951
|
-
background: transparent;
|
|
1952
|
-
min-width: 0;
|
|
1953
|
-
}
|
|
1954
|
-
|
|
1955
|
-
#results {
|
|
1956
|
-
background: #fff;
|
|
1957
|
-
padding-left: 1rem;
|
|
1958
|
-
padding-right: 1rem;
|
|
1959
|
-
}
|
|
1960
|
-
|
|
1961
|
-
#right-column.smart-results-spacing #results {
|
|
1962
|
-
border-radius: 10px 10px 0px 0px;
|
|
1963
|
-
padding-top: 0.5rem;
|
|
1964
|
-
margin-top: 1rem;
|
|
1965
|
-
}
|
|
1966
|
-
|
|
1967
|
-
.mobile #right-column {
|
|
1968
|
-
border-left: none;
|
|
1969
|
-
}
|
|
1970
|
-
|
|
1971
|
-
.mobile #results {
|
|
1972
|
-
padding: 5px 5px 0;
|
|
1973
|
-
}
|
|
1974
|
-
|
|
1975
|
-
#left-column {
|
|
1976
|
-
width: var(--leftColumnWidth, 18rem);
|
|
1977
|
-
/* Prevents Safari from shrinking col at first draw */
|
|
1978
|
-
min-width: var(--leftColumnWidth, 18rem);
|
|
1979
|
-
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
1980
|
-
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
1981
|
-
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
1982
|
-
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
1983
|
-
z-index: 1;
|
|
1984
|
-
}
|
|
1985
|
-
|
|
1986
|
-
.desktop #left-column {
|
|
1987
|
-
top: 0;
|
|
1988
|
-
position: sticky;
|
|
1989
|
-
height: calc(100vh - 2rem);
|
|
1990
|
-
max-height: calc(100vh - 2rem);
|
|
1991
|
-
overflow-x: hidden;
|
|
1992
|
-
overflow-y: scroll;
|
|
1993
|
-
|
|
1994
|
-
/*
|
|
1995
|
-
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
1996
|
-
* does at least give us a tiny bit of control over width & color.
|
|
1997
|
-
*/
|
|
1998
|
-
scrollbar-width: thin;
|
|
1999
|
-
scrollbar-color: transparent transparent;
|
|
2000
|
-
}
|
|
2001
|
-
.desktop #left-column:hover {
|
|
2002
|
-
scrollbar-color: auto;
|
|
2003
|
-
}
|
|
2004
|
-
.desktop #left-column::-webkit-scrollbar {
|
|
2005
|
-
appearance: none;
|
|
2006
|
-
width: 6px;
|
|
2007
|
-
}
|
|
2008
|
-
.desktop #left-column::-webkit-scrollbar-button {
|
|
2009
|
-
height: 3px;
|
|
2010
|
-
background: transparent;
|
|
2011
|
-
}
|
|
2012
|
-
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2013
|
-
background: transparent;
|
|
2014
|
-
}
|
|
2015
|
-
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2016
|
-
border-radius: 4px;
|
|
2017
|
-
}
|
|
2018
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2019
|
-
background: rgba(0, 0, 0, 0.15);
|
|
2020
|
-
}
|
|
2021
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2022
|
-
background: rgba(0, 0, 0, 0.2);
|
|
2023
|
-
}
|
|
2024
|
-
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2025
|
-
background: rgba(0, 0, 0, 0.3);
|
|
2026
|
-
}
|
|
2027
|
-
|
|
2028
|
-
#facets-bottom-fade {
|
|
2029
|
-
background: linear-gradient(
|
|
2030
|
-
to bottom,
|
|
2031
|
-
#f5f5f700 0%,
|
|
2032
|
-
#f5f5f7c0 50%,
|
|
2033
|
-
#f5f5f7 80%,
|
|
2034
|
-
#f5f5f7 100%
|
|
2035
|
-
);
|
|
2036
|
-
position: fixed;
|
|
2037
|
-
bottom: 0;
|
|
2038
|
-
height: 50px;
|
|
2039
|
-
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2040
|
-
width: calc(
|
|
2041
|
-
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2042
|
-
);
|
|
2043
|
-
z-index: 2;
|
|
2044
|
-
pointer-events: none;
|
|
2045
|
-
transition: height 0.1s ease;
|
|
2046
|
-
}
|
|
2047
|
-
#facets-bottom-fade.hidden {
|
|
2048
|
-
height: 0;
|
|
2049
|
-
}
|
|
2050
|
-
|
|
2051
|
-
.facets-message {
|
|
2052
|
-
font-size: 1.4rem;
|
|
2053
|
-
}
|
|
2054
|
-
|
|
2055
|
-
.desktop-facets-dropdown > summary {
|
|
2056
|
-
cursor: pointer;
|
|
2057
|
-
list-style: none;
|
|
2058
|
-
}
|
|
2059
|
-
|
|
2060
|
-
.desktop-facets-dropdown h2 {
|
|
2061
|
-
display: inline-block;
|
|
2062
|
-
margin: 0;
|
|
2063
|
-
font-size: 1.6rem;
|
|
2064
|
-
}
|
|
2065
|
-
|
|
2066
|
-
.desktop-facets-dropdown[open] > summary {
|
|
2067
|
-
margin-bottom: 10px;
|
|
2068
|
-
}
|
|
2069
|
-
|
|
2070
|
-
.desktop-facets-dropdown[open] svg {
|
|
2071
|
-
transform: rotate(90deg);
|
|
2072
|
-
}
|
|
2073
|
-
|
|
2074
|
-
.desktop #left-column-scroll-sentinel {
|
|
2075
|
-
width: 1px;
|
|
2076
|
-
height: 100vh;
|
|
2077
|
-
background: transparent;
|
|
2078
|
-
}
|
|
2079
|
-
|
|
2080
|
-
.desktop #facets-scroll-sentinel {
|
|
2081
|
-
width: 1px;
|
|
2082
|
-
height: 1px;
|
|
2083
|
-
background: transparent;
|
|
2084
|
-
}
|
|
2085
|
-
|
|
2086
|
-
#facets-header-container {
|
|
2087
|
-
display: flex;
|
|
2088
|
-
justify-content: space-between;
|
|
2089
|
-
align-items: flex-start;
|
|
2090
|
-
clear: both;
|
|
2091
|
-
}
|
|
2092
|
-
|
|
2093
|
-
.desktop #facets-header-container {
|
|
2094
|
-
flex-wrap: wrap;
|
|
2095
|
-
}
|
|
2096
|
-
|
|
2097
|
-
.mobile #left-column {
|
|
2098
|
-
width: 100%;
|
|
2099
|
-
min-width: 0;
|
|
2100
|
-
padding: 5px 0;
|
|
2101
|
-
border: 0;
|
|
2102
|
-
}
|
|
2103
|
-
|
|
2104
|
-
.clear-filters-btn-row {
|
|
2105
|
-
display: inline-block;
|
|
2106
|
-
}
|
|
2107
|
-
|
|
2108
|
-
.desktop .clear-filters-btn-row {
|
|
2109
|
-
width: 100%;
|
|
2110
|
-
}
|
|
2111
|
-
|
|
2112
|
-
.clear-filters-btn {
|
|
2113
|
-
display: inline-block;
|
|
2114
|
-
appearance: none;
|
|
2115
|
-
margin: 0;
|
|
2116
|
-
padding: 0;
|
|
2117
|
-
border: 0;
|
|
2118
|
-
background: none;
|
|
2119
|
-
color: var(--ia-theme-link-color);
|
|
2120
|
-
font-size: 1.4rem;
|
|
2121
|
-
font-family: inherit;
|
|
2122
|
-
cursor: pointer;
|
|
2123
|
-
}
|
|
2124
|
-
|
|
2125
|
-
.clear-filters-btn:hover {
|
|
2126
|
-
text-decoration: underline;
|
|
2127
|
-
}
|
|
2128
|
-
|
|
2129
|
-
.clear-filters-btn-separator {
|
|
2130
|
-
display: inline-block;
|
|
2131
|
-
margin-left: 5px;
|
|
2132
|
-
border-left: 1px solid #2c2c2c;
|
|
2133
|
-
font-size: 1.4rem;
|
|
2134
|
-
line-height: 1.3rem;
|
|
2135
|
-
}
|
|
2136
|
-
|
|
2137
|
-
#facets-container {
|
|
2138
|
-
position: relative;
|
|
2139
|
-
max-height: 0;
|
|
2140
|
-
transition: max-height 0.2s ease-in-out;
|
|
2141
|
-
z-index: 1;
|
|
2142
|
-
margin-top:
|
|
2143
|
-
padding-bottom: 2rem;
|
|
2144
|
-
}
|
|
2145
|
-
|
|
2146
|
-
.desktop #facets-container {
|
|
2147
|
-
width: 18rem;
|
|
2148
|
-
}
|
|
2149
|
-
|
|
2150
|
-
.mobile #facets-container {
|
|
2151
|
-
overflow: hidden;
|
|
2152
|
-
padding-bottom: 0;
|
|
2153
|
-
padding-left: 10px;
|
|
2154
|
-
padding-right: 10px;
|
|
2155
|
-
}
|
|
2156
|
-
|
|
2157
|
-
#facets-container.expanded {
|
|
2158
|
-
max-height: 2000px;
|
|
2159
|
-
}
|
|
2160
|
-
|
|
2161
|
-
.results-section-heading {
|
|
2162
|
-
margin: 0.5rem 0.3rem;
|
|
2163
|
-
font-size: 2rem;
|
|
2164
|
-
line-height: 25px;
|
|
2165
|
-
}
|
|
2166
|
-
|
|
2167
|
-
#results-total {
|
|
2168
|
-
display: flex;
|
|
2169
|
-
align-items: baseline;
|
|
2170
|
-
}
|
|
2171
|
-
|
|
2172
|
-
.mobile #results-total {
|
|
2173
|
-
position: absolute;
|
|
2174
|
-
right: 10px;
|
|
2175
|
-
}
|
|
2176
|
-
|
|
2177
|
-
#big-results-count {
|
|
2178
|
-
font-size: 2.4rem;
|
|
2179
|
-
font-weight: 500;
|
|
2180
|
-
margin-right: 5px;
|
|
2181
|
-
}
|
|
2182
|
-
|
|
2183
|
-
.mobile #big-results-count {
|
|
2184
|
-
font-size: 2rem;
|
|
2185
|
-
}
|
|
2186
|
-
|
|
2187
|
-
#big-results-label {
|
|
2188
|
-
font-size: 1.4rem;
|
|
2189
|
-
font-weight: 200;
|
|
2190
|
-
}
|
|
2191
|
-
|
|
2192
|
-
#list-header {
|
|
2193
|
-
max-height: 4.2rem;
|
|
2194
|
-
}
|
|
2195
|
-
|
|
2196
|
-
.loading-cover {
|
|
2197
|
-
position: absolute;
|
|
2198
|
-
top: 0;
|
|
2199
|
-
left: 0;
|
|
2200
|
-
width: 100%;
|
|
2201
|
-
height: 100%;
|
|
2202
|
-
display: flex;
|
|
2203
|
-
justify-content: center;
|
|
2204
|
-
z-index: 1;
|
|
2205
|
-
padding-top: 50px;
|
|
2206
|
-
}
|
|
2207
|
-
|
|
2208
|
-
#tile-blur-label {
|
|
2209
|
-
display: flex;
|
|
2210
|
-
align-items: center;
|
|
2211
|
-
column-gap: 5px;
|
|
2212
|
-
}
|
|
2213
|
-
|
|
2214
|
-
#tile-blur-check {
|
|
2215
|
-
margin: 0 5px 0 0;
|
|
2216
|
-
}
|
|
2217
|
-
|
|
2218
|
-
circular-activity-indicator {
|
|
2219
|
-
width: 30px;
|
|
2220
|
-
height: 30px;
|
|
2221
|
-
}
|
|
2222
|
-
|
|
2223
|
-
sort-filter-bar {
|
|
2224
|
-
display: block;
|
|
2225
|
-
margin-bottom: 4rem;
|
|
2226
|
-
}
|
|
2227
|
-
|
|
2228
|
-
infinite-scroller {
|
|
2229
|
-
display: block;
|
|
2230
|
-
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2231
|
-
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2232
|
-
}
|
|
2233
|
-
|
|
2234
|
-
infinite-scroller.list-compact {
|
|
2235
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2236
|
-
--collectionBrowserCellMinWidth,
|
|
2237
|
-
100%
|
|
2238
|
-
);
|
|
2239
|
-
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2240
|
-
--infiniteScrollerCellMaxHeight: 56px;
|
|
2241
|
-
--infiniteScrollerRowGap: 10px;
|
|
2242
|
-
}
|
|
2243
|
-
|
|
2244
|
-
infinite-scroller.list-detail {
|
|
2245
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2246
|
-
--collectionBrowserCellMinWidth,
|
|
2247
|
-
100%
|
|
2248
|
-
);
|
|
2249
|
-
--infiniteScrollerCellMinHeight: var(
|
|
2250
|
-
--collectionBrowserCellMinHeight,
|
|
2251
|
-
5rem
|
|
2252
|
-
);
|
|
2253
|
-
/*
|
|
2254
|
-
30px in spec, compensating for a -4px margin
|
|
2255
|
-
to align title with top of item image
|
|
2256
|
-
src/tiles/list/tile-list.ts
|
|
2257
|
-
*/
|
|
2258
|
-
--infiniteScrollerRowGap: 34px;
|
|
2259
|
-
}
|
|
2260
|
-
|
|
2261
|
-
.mobile infinite-scroller.list-detail {
|
|
2262
|
-
--infiniteScrollerRowGap: 24px;
|
|
2263
|
-
}
|
|
2264
|
-
|
|
2265
|
-
infinite-scroller.grid {
|
|
2266
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2267
|
-
--collectionBrowserCellMinWidth,
|
|
2268
|
-
17rem
|
|
2269
|
-
);
|
|
2270
|
-
--infiniteScrollerCellMaxWidth: var(
|
|
2271
|
-
--collectionBrowserCellMaxWidth,
|
|
2272
|
-
1fr
|
|
2273
|
-
);
|
|
2274
|
-
}
|
|
2275
|
-
|
|
2276
|
-
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2277
|
-
@media screen and (max-width: 880px) {
|
|
2278
|
-
infinite-scroller.grid {
|
|
2279
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2280
|
-
--collectionBrowserCellMinWidth,
|
|
2281
|
-
15rem
|
|
2282
|
-
);
|
|
2283
|
-
}
|
|
2284
|
-
}
|
|
2285
|
-
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2286
|
-
@media screen and (max-width: 360px) {
|
|
2287
|
-
infinite-scroller.grid {
|
|
2288
|
-
--infiniteScrollerCellMinWidth: var(
|
|
2289
|
-
--collectionBrowserCellMinWidth,
|
|
2290
|
-
12rem
|
|
2291
|
-
);
|
|
2292
|
-
}
|
|
2293
|
-
}
|
|
2294
|
-
|
|
2295
|
-
infinite-scroller.hidden {
|
|
2296
|
-
display: none;
|
|
2297
|
-
}
|
|
1874
|
+
css `
|
|
1875
|
+
:host {
|
|
1876
|
+
display: block;
|
|
1877
|
+
--leftColumnWidth: 18rem;
|
|
1878
|
+
--leftColumnPaddingTop: 2rem;
|
|
1879
|
+
--leftColumnPaddingRight: 2.5rem;
|
|
1880
|
+
}
|
|
1881
|
+
|
|
1882
|
+
#facet-top-view {
|
|
1883
|
+
display: flex;
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1886
|
+
/**
|
|
1887
|
+
* When page width resizes from desktop to mobile, use this class to
|
|
1888
|
+
* disable expand/collapse transition when loading.
|
|
1889
|
+
*/
|
|
1890
|
+
.preload * {
|
|
1891
|
+
transition: none !important;
|
|
1892
|
+
-webkit-transition: none !important;
|
|
1893
|
+
-moz-transition: none !important;
|
|
1894
|
+
-ms-transition: none !important;
|
|
1895
|
+
-o-transition: none !important;
|
|
1896
|
+
}
|
|
1897
|
+
|
|
1898
|
+
#content-container {
|
|
1899
|
+
display: flex;
|
|
1900
|
+
}
|
|
1901
|
+
|
|
1902
|
+
empty-placeholder {
|
|
1903
|
+
margin-top: var(--placeholderMarginTop, 0);
|
|
1904
|
+
}
|
|
1905
|
+
|
|
1906
|
+
.collapser-icon {
|
|
1907
|
+
display: inline-block;
|
|
1908
|
+
}
|
|
1909
|
+
|
|
1910
|
+
.collapser-icon svg {
|
|
1911
|
+
display: inline-block;
|
|
1912
|
+
width: 12px;
|
|
1913
|
+
height: 12px;
|
|
1914
|
+
transition: transform 0.2s ease-out;
|
|
1915
|
+
}
|
|
1916
|
+
|
|
1917
|
+
#mobile-filter-collapse {
|
|
1918
|
+
width: 100%;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1921
|
+
#mobile-filter-collapse > summary {
|
|
1922
|
+
cursor: pointer;
|
|
1923
|
+
list-style: none;
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
#mobile-filter-collapse[open] > summary {
|
|
1927
|
+
margin-bottom: 10px;
|
|
1928
|
+
}
|
|
1929
|
+
|
|
1930
|
+
#mobile-filter-collapse h2 {
|
|
1931
|
+
display: inline-block;
|
|
1932
|
+
margin: 0;
|
|
1933
|
+
font-size: 2rem;
|
|
1934
|
+
}
|
|
1935
|
+
|
|
1936
|
+
#mobile-filter-collapse[open] svg {
|
|
1937
|
+
transform: rotate(90deg);
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
#content-container.mobile {
|
|
1941
|
+
display: block;
|
|
1942
|
+
}
|
|
1943
|
+
|
|
1944
|
+
#right-column {
|
|
1945
|
+
flex: 1;
|
|
1946
|
+
position: relative;
|
|
1947
|
+
min-height: 90vh;
|
|
1948
|
+
border-right: 1px solid rgb(232, 232, 232);
|
|
1949
|
+
margin-top: var(--rightColumnMarginTop, 0);
|
|
1950
|
+
padding-top: 2rem;
|
|
1951
|
+
background: #fff;
|
|
1952
|
+
}
|
|
1953
|
+
|
|
1954
|
+
#left-column:not([hidden]) + #right-column {
|
|
1955
|
+
border-left: 1px solid rgb(232, 232, 232);
|
|
1956
|
+
}
|
|
1957
|
+
|
|
1958
|
+
#right-column.smart-results-spacing {
|
|
1959
|
+
padding-top: 0.5rem;
|
|
1960
|
+
border-right: none;
|
|
1961
|
+
background: transparent;
|
|
1962
|
+
min-width: 0;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1965
|
+
#results {
|
|
1966
|
+
background: #fff;
|
|
1967
|
+
padding-left: 1rem;
|
|
1968
|
+
padding-right: 1rem;
|
|
1969
|
+
}
|
|
1970
|
+
|
|
1971
|
+
#right-column.smart-results-spacing #results {
|
|
1972
|
+
border-radius: 10px 10px 0px 0px;
|
|
1973
|
+
padding-top: 0.5rem;
|
|
1974
|
+
margin-top: 1rem;
|
|
1975
|
+
}
|
|
1976
|
+
|
|
1977
|
+
.mobile #right-column {
|
|
1978
|
+
border-left: none;
|
|
1979
|
+
}
|
|
1980
|
+
|
|
1981
|
+
.mobile #results {
|
|
1982
|
+
padding: 5px 5px 0;
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
#left-column {
|
|
1986
|
+
width: var(--leftColumnWidth, 18rem);
|
|
1987
|
+
/* Prevents Safari from shrinking col at first draw */
|
|
1988
|
+
min-width: var(--leftColumnWidth, 18rem);
|
|
1989
|
+
padding-top: var(--leftColumnPaddingTop, 2rem);
|
|
1990
|
+
/* Reduced padding by 0.2rem to add the invisible border in the rule below */
|
|
1991
|
+
padding-right: calc(var(--leftColumnPaddingRight, 2.5rem) - 0.2rem);
|
|
1992
|
+
border-right: 0.2rem solid transparent; /* Pads to the right of the scrollbar a bit */
|
|
1993
|
+
z-index: 1;
|
|
1994
|
+
}
|
|
1995
|
+
|
|
1996
|
+
.desktop #left-column {
|
|
1997
|
+
top: 0;
|
|
1998
|
+
position: sticky;
|
|
1999
|
+
height: calc(100vh - 2rem);
|
|
2000
|
+
max-height: calc(100vh - 2rem);
|
|
2001
|
+
overflow-x: hidden;
|
|
2002
|
+
overflow-y: scroll;
|
|
2003
|
+
|
|
2004
|
+
/*
|
|
2005
|
+
* Firefox doesn't support any of the -webkit-scrollbar stuff below, but
|
|
2006
|
+
* does at least give us a tiny bit of control over width & color.
|
|
2007
|
+
*/
|
|
2008
|
+
scrollbar-width: thin;
|
|
2009
|
+
scrollbar-color: transparent transparent;
|
|
2010
|
+
}
|
|
2011
|
+
.desktop #left-column:hover {
|
|
2012
|
+
scrollbar-color: auto;
|
|
2013
|
+
}
|
|
2014
|
+
.desktop #left-column::-webkit-scrollbar {
|
|
2015
|
+
appearance: none;
|
|
2016
|
+
width: 6px;
|
|
2017
|
+
}
|
|
2018
|
+
.desktop #left-column::-webkit-scrollbar-button {
|
|
2019
|
+
height: 3px;
|
|
2020
|
+
background: transparent;
|
|
2021
|
+
}
|
|
2022
|
+
.desktop #left-column::-webkit-scrollbar-corner {
|
|
2023
|
+
background: transparent;
|
|
2024
|
+
}
|
|
2025
|
+
.desktop #left-column::-webkit-scrollbar-thumb {
|
|
2026
|
+
border-radius: 4px;
|
|
2027
|
+
}
|
|
2028
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb {
|
|
2029
|
+
background: rgba(0, 0, 0, 0.15);
|
|
2030
|
+
}
|
|
2031
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:hover {
|
|
2032
|
+
background: rgba(0, 0, 0, 0.2);
|
|
2033
|
+
}
|
|
2034
|
+
.desktop #left-column:hover::-webkit-scrollbar-thumb:active {
|
|
2035
|
+
background: rgba(0, 0, 0, 0.3);
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
#facets-bottom-fade {
|
|
2039
|
+
background: linear-gradient(
|
|
2040
|
+
to bottom,
|
|
2041
|
+
#f5f5f700 0%,
|
|
2042
|
+
#f5f5f7c0 50%,
|
|
2043
|
+
#f5f5f7 80%,
|
|
2044
|
+
#f5f5f7 100%
|
|
2045
|
+
);
|
|
2046
|
+
position: fixed;
|
|
2047
|
+
bottom: 0;
|
|
2048
|
+
height: 50px;
|
|
2049
|
+
/* Wide enough to cover the content, but leave the scrollbar uncovered */
|
|
2050
|
+
width: calc(
|
|
2051
|
+
var(--leftColumnWidth) + var(--leftColumnPaddingRight) - 10px
|
|
2052
|
+
);
|
|
2053
|
+
z-index: 2;
|
|
2054
|
+
pointer-events: none;
|
|
2055
|
+
transition: height 0.1s ease;
|
|
2056
|
+
}
|
|
2057
|
+
#facets-bottom-fade.hidden {
|
|
2058
|
+
height: 0;
|
|
2059
|
+
}
|
|
2060
|
+
|
|
2061
|
+
.facets-message {
|
|
2062
|
+
font-size: 1.4rem;
|
|
2063
|
+
}
|
|
2064
|
+
|
|
2065
|
+
.desktop-facets-dropdown > summary {
|
|
2066
|
+
cursor: pointer;
|
|
2067
|
+
list-style: none;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
.desktop-facets-dropdown h2 {
|
|
2071
|
+
display: inline-block;
|
|
2072
|
+
margin: 0;
|
|
2073
|
+
font-size: 1.6rem;
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
.desktop-facets-dropdown[open] > summary {
|
|
2077
|
+
margin-bottom: 10px;
|
|
2078
|
+
}
|
|
2079
|
+
|
|
2080
|
+
.desktop-facets-dropdown[open] svg {
|
|
2081
|
+
transform: rotate(90deg);
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
.desktop #left-column-scroll-sentinel {
|
|
2085
|
+
width: 1px;
|
|
2086
|
+
height: 100vh;
|
|
2087
|
+
background: transparent;
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
.desktop #facets-scroll-sentinel {
|
|
2091
|
+
width: 1px;
|
|
2092
|
+
height: 1px;
|
|
2093
|
+
background: transparent;
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
#facets-header-container {
|
|
2097
|
+
display: flex;
|
|
2098
|
+
justify-content: space-between;
|
|
2099
|
+
align-items: flex-start;
|
|
2100
|
+
clear: both;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
.desktop #facets-header-container {
|
|
2104
|
+
flex-wrap: wrap;
|
|
2105
|
+
}
|
|
2106
|
+
|
|
2107
|
+
.mobile #left-column {
|
|
2108
|
+
width: 100%;
|
|
2109
|
+
min-width: 0;
|
|
2110
|
+
padding: 5px 0;
|
|
2111
|
+
border: 0;
|
|
2112
|
+
}
|
|
2113
|
+
|
|
2114
|
+
.clear-filters-btn-row {
|
|
2115
|
+
display: inline-block;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
.desktop .clear-filters-btn-row {
|
|
2119
|
+
width: 100%;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
.clear-filters-btn {
|
|
2123
|
+
display: inline-block;
|
|
2124
|
+
appearance: none;
|
|
2125
|
+
margin: 0;
|
|
2126
|
+
padding: 0;
|
|
2127
|
+
border: 0;
|
|
2128
|
+
background: none;
|
|
2129
|
+
color: var(--ia-theme-link-color);
|
|
2130
|
+
font-size: 1.4rem;
|
|
2131
|
+
font-family: inherit;
|
|
2132
|
+
cursor: pointer;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
.clear-filters-btn:hover {
|
|
2136
|
+
text-decoration: underline;
|
|
2137
|
+
}
|
|
2138
|
+
|
|
2139
|
+
.clear-filters-btn-separator {
|
|
2140
|
+
display: inline-block;
|
|
2141
|
+
margin-left: 5px;
|
|
2142
|
+
border-left: 1px solid #2c2c2c;
|
|
2143
|
+
font-size: 1.4rem;
|
|
2144
|
+
line-height: 1.3rem;
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
#facets-container {
|
|
2148
|
+
position: relative;
|
|
2149
|
+
max-height: 0;
|
|
2150
|
+
transition: max-height 0.2s ease-in-out;
|
|
2151
|
+
z-index: 1;
|
|
2152
|
+
margin-top: 5rem;
|
|
2153
|
+
padding-bottom: 2rem;
|
|
2154
|
+
}
|
|
2155
|
+
|
|
2156
|
+
.desktop #facets-container {
|
|
2157
|
+
width: 18rem;
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
.mobile #facets-container {
|
|
2161
|
+
overflow: hidden;
|
|
2162
|
+
padding-bottom: 0;
|
|
2163
|
+
padding-left: 10px;
|
|
2164
|
+
padding-right: 10px;
|
|
2165
|
+
}
|
|
2166
|
+
|
|
2167
|
+
#facets-container.expanded {
|
|
2168
|
+
max-height: 2000px;
|
|
2169
|
+
}
|
|
2170
|
+
|
|
2171
|
+
.results-section-heading {
|
|
2172
|
+
margin: 0.5rem 0.3rem;
|
|
2173
|
+
font-size: 2rem;
|
|
2174
|
+
line-height: 25px;
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
#results-total {
|
|
2178
|
+
display: flex;
|
|
2179
|
+
align-items: baseline;
|
|
2180
|
+
}
|
|
2181
|
+
|
|
2182
|
+
.mobile #results-total {
|
|
2183
|
+
position: absolute;
|
|
2184
|
+
right: 10px;
|
|
2185
|
+
}
|
|
2186
|
+
|
|
2187
|
+
#big-results-count {
|
|
2188
|
+
font-size: 2.4rem;
|
|
2189
|
+
font-weight: 500;
|
|
2190
|
+
margin-right: 5px;
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
.mobile #big-results-count {
|
|
2194
|
+
font-size: 2rem;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
#big-results-label {
|
|
2198
|
+
font-size: 1.4rem;
|
|
2199
|
+
font-weight: 200;
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2202
|
+
#list-header {
|
|
2203
|
+
max-height: 4.2rem;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
.loading-cover {
|
|
2207
|
+
position: absolute;
|
|
2208
|
+
top: 0;
|
|
2209
|
+
left: 0;
|
|
2210
|
+
width: 100%;
|
|
2211
|
+
height: 100%;
|
|
2212
|
+
display: flex;
|
|
2213
|
+
justify-content: center;
|
|
2214
|
+
z-index: 1;
|
|
2215
|
+
padding-top: 50px;
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2218
|
+
#tile-blur-label {
|
|
2219
|
+
display: flex;
|
|
2220
|
+
align-items: center;
|
|
2221
|
+
column-gap: 5px;
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
#tile-blur-check {
|
|
2225
|
+
margin: 0 5px 0 0;
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
circular-activity-indicator {
|
|
2229
|
+
width: 30px;
|
|
2230
|
+
height: 30px;
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2233
|
+
sort-filter-bar {
|
|
2234
|
+
display: block;
|
|
2235
|
+
margin-bottom: 4rem;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
infinite-scroller {
|
|
2239
|
+
display: block;
|
|
2240
|
+
--infiniteScrollerRowGap: var(--collectionBrowserRowGap, 1.7rem);
|
|
2241
|
+
--infiniteScrollerColGap: var(--collectionBrowserColGap, 1.7rem);
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
infinite-scroller.list-compact {
|
|
2245
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2246
|
+
--collectionBrowserCellMinWidth,
|
|
2247
|
+
100%
|
|
2248
|
+
);
|
|
2249
|
+
--infiniteScrollerCellMinHeight: 45px; /* override infinite scroller component */
|
|
2250
|
+
--infiniteScrollerCellMaxHeight: 56px;
|
|
2251
|
+
--infiniteScrollerRowGap: 10px;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
infinite-scroller.list-detail {
|
|
2255
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2256
|
+
--collectionBrowserCellMinWidth,
|
|
2257
|
+
100%
|
|
2258
|
+
);
|
|
2259
|
+
--infiniteScrollerCellMinHeight: var(
|
|
2260
|
+
--collectionBrowserCellMinHeight,
|
|
2261
|
+
5rem
|
|
2262
|
+
);
|
|
2263
|
+
/*
|
|
2264
|
+
30px in spec, compensating for a -4px margin
|
|
2265
|
+
to align title with top of item image
|
|
2266
|
+
src/tiles/list/tile-list.ts
|
|
2267
|
+
*/
|
|
2268
|
+
--infiniteScrollerRowGap: 34px;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
.mobile infinite-scroller.list-detail {
|
|
2272
|
+
--infiniteScrollerRowGap: 24px;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
infinite-scroller.grid {
|
|
2276
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2277
|
+
--collectionBrowserCellMinWidth,
|
|
2278
|
+
17rem
|
|
2279
|
+
);
|
|
2280
|
+
--infiniteScrollerCellMaxWidth: var(
|
|
2281
|
+
--collectionBrowserCellMaxWidth,
|
|
2282
|
+
1fr
|
|
2283
|
+
);
|
|
2284
|
+
}
|
|
2285
|
+
|
|
2286
|
+
/* Allow tiles to shrink a bit further at smaller viewport widths */
|
|
2287
|
+
@media screen and (max-width: 880px) {
|
|
2288
|
+
infinite-scroller.grid {
|
|
2289
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2290
|
+
--collectionBrowserCellMinWidth,
|
|
2291
|
+
15rem
|
|
2292
|
+
);
|
|
2293
|
+
}
|
|
2294
|
+
}
|
|
2295
|
+
/* At very small widths, maintain a 2-tile layout as far as it can reasonably go */
|
|
2296
|
+
@media screen and (max-width: 360px) {
|
|
2297
|
+
infinite-scroller.grid {
|
|
2298
|
+
--infiniteScrollerCellMinWidth: var(
|
|
2299
|
+
--collectionBrowserCellMinWidth,
|
|
2300
|
+
12rem
|
|
2301
|
+
);
|
|
2302
|
+
}
|
|
2303
|
+
}
|
|
2304
|
+
|
|
2305
|
+
infinite-scroller.hidden {
|
|
2306
|
+
display: none;
|
|
2307
|
+
}
|
|
2298
2308
|
`,
|
|
2299
2309
|
];
|
|
2300
2310
|
}
|