@internetarchive/collection-browser 3.2.0 → 3.3.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 +4 -0
- package/dist/src/collection-browser.js +702 -682
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.js +118 -118
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets.js +266 -266
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
- package/dist/src/data-source/models.js.map +1 -1
- package/dist/src/tiles/base-tile-component.d.ts +7 -0
- package/dist/src/tiles/base-tile-component.js +13 -0
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.js +37 -36
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js +78 -77
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.d.ts +1 -1
- package/dist/src/tiles/grid/item-tile.js +139 -140
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.js +100 -98
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +300 -300
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +204 -200
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/utils/format-date.d.ts +15 -1
- package/dist/src/utils/format-date.js +8 -3
- package/dist/src/utils/format-date.js.map +1 -1
- package/dist/test/collection-browser.test.js +189 -189
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +115 -64
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +108 -57
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +164 -113
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/utils/format-date.test.js +31 -1
- package/dist/test/utils/format-date.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 +2829 -2804
- package/src/collection-facets/more-facets-content.ts +639 -639
- package/src/collection-facets.ts +995 -995
- package/src/data-source/collection-browser-data-source.ts +1401 -1401
- package/src/data-source/collection-browser-query-state.ts +65 -65
- package/src/data-source/models.ts +43 -43
- package/src/tiles/base-tile-component.ts +65 -53
- package/src/tiles/grid/account-tile.ts +113 -112
- package/src/tiles/grid/collection-tile.ts +163 -162
- package/src/tiles/grid/item-tile.ts +340 -339
- package/src/tiles/list/tile-list-compact.ts +239 -236
- package/src/tiles/list/tile-list.ts +700 -696
- package/src/tiles/tile-dispatcher.ts +490 -486
- package/src/utils/format-date.ts +62 -42
- package/test/collection-browser.test.ts +2403 -2403
- package/test/tiles/grid/item-tile.test.ts +520 -464
- package/test/tiles/list/tile-list-compact.test.ts +282 -228
- package/test/tiles/list/tile-list.test.ts +552 -497
- package/test/utils/format-date.test.ts +89 -39
- package/tsconfig.json +20 -20
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -77,27 +77,27 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
77
77
|
// Added data-testid for Playwright testing
|
|
78
78
|
// Using facet-group class and aria-labels is not ideal for Playwright locator
|
|
79
79
|
const datePickerLabelId = 'date-picker-label';
|
|
80
|
-
return html `
|
|
81
|
-
<div id="container" class=${containerClasses}>
|
|
80
|
+
return html `
|
|
81
|
+
<div id="container" class=${containerClasses}>
|
|
82
82
|
${this.showHistogramDatePicker &&
|
|
83
83
|
(this.histogramAggregation || this.histogramAggregationLoading)
|
|
84
|
-
? html `
|
|
85
|
-
<section
|
|
86
|
-
class="facet-group"
|
|
87
|
-
aria-labelledby=${datePickerLabelId}
|
|
88
|
-
data-testid="facet-group-header-label-date-picker"
|
|
89
|
-
>
|
|
90
|
-
<h3 id=${datePickerLabelId}>
|
|
91
|
-
Year Published <span class="sr-only">range filter</span>
|
|
92
|
-
${this.expandDatePickerBtnTemplate}
|
|
93
|
-
</h3>
|
|
94
|
-
${this.histogramTemplate}
|
|
95
|
-
</section>
|
|
84
|
+
? html `
|
|
85
|
+
<section
|
|
86
|
+
class="facet-group"
|
|
87
|
+
aria-labelledby=${datePickerLabelId}
|
|
88
|
+
data-testid="facet-group-header-label-date-picker"
|
|
89
|
+
>
|
|
90
|
+
<h3 id=${datePickerLabelId}>
|
|
91
|
+
Year Published <span class="sr-only">range filter</span>
|
|
92
|
+
${this.expandDatePickerBtnTemplate}
|
|
93
|
+
</h3>
|
|
94
|
+
${this.histogramTemplate}
|
|
95
|
+
</section>
|
|
96
96
|
`
|
|
97
|
-
: nothing}
|
|
98
|
-
${this.collectionPartOfTemplate}
|
|
99
|
-
${this.mergedFacets.map(facetGroup => this.getFacetGroupTemplate(facetGroup))}
|
|
100
|
-
</div>
|
|
97
|
+
: nothing}
|
|
98
|
+
${this.collectionPartOfTemplate}
|
|
99
|
+
${this.mergedFacets.map(facetGroup => this.getFacetGroupTemplate(facetGroup))}
|
|
100
|
+
</div>
|
|
101
101
|
`;
|
|
102
102
|
}
|
|
103
103
|
get collectionPartOfTemplate() {
|
|
@@ -108,31 +108,31 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
108
108
|
// Added data-testid for Playwright testing
|
|
109
109
|
// Using className and aria-labels is not ideal for Playwright locator
|
|
110
110
|
const headingId = 'partof-heading';
|
|
111
|
-
return html `
|
|
112
|
-
<section
|
|
113
|
-
class="facet-group partof-collections"
|
|
114
|
-
aria-labelledby=${headingId}
|
|
115
|
-
data-testid="facet-group-partof-collections"
|
|
116
|
-
>
|
|
117
|
-
<div class="facet-group-header">
|
|
118
|
-
<h3 id=${headingId}>${msg('Part Of')}</h3>
|
|
119
|
-
</div>
|
|
120
|
-
<ul>
|
|
111
|
+
return html `
|
|
112
|
+
<section
|
|
113
|
+
class="facet-group partof-collections"
|
|
114
|
+
aria-labelledby=${headingId}
|
|
115
|
+
data-testid="facet-group-partof-collections"
|
|
116
|
+
>
|
|
117
|
+
<div class="facet-group-header">
|
|
118
|
+
<h3 id=${headingId}>${msg('Part Of')}</h3>
|
|
119
|
+
</div>
|
|
120
|
+
<ul>
|
|
121
121
|
${map(this.parentCollections, collxn => {
|
|
122
122
|
var _a, _b;
|
|
123
123
|
const collectionURL = `${this.baseNavigationUrl}${this.collectionPagePath}${collxn}`;
|
|
124
|
-
return html ` <li>
|
|
125
|
-
<a
|
|
126
|
-
href=${collectionURL}
|
|
127
|
-
data-id=${collxn}
|
|
128
|
-
@click=${this.partOfCollectionClicked}
|
|
129
|
-
>
|
|
130
|
-
${(_b = (_a = this.collectionTitles) === null || _a === void 0 ? void 0 : _a.get(collxn)) !== null && _b !== void 0 ? _b : collxn}
|
|
131
|
-
</a>
|
|
124
|
+
return html ` <li>
|
|
125
|
+
<a
|
|
126
|
+
href=${collectionURL}
|
|
127
|
+
data-id=${collxn}
|
|
128
|
+
@click=${this.partOfCollectionClicked}
|
|
129
|
+
>
|
|
130
|
+
${(_b = (_a = this.collectionTitles) === null || _a === void 0 ? void 0 : _a.get(collxn)) !== null && _b !== void 0 ? _b : collxn}
|
|
131
|
+
</a>
|
|
132
132
|
</li>`;
|
|
133
|
-
})}
|
|
134
|
-
</ul>
|
|
135
|
-
</section>
|
|
133
|
+
})}
|
|
134
|
+
</ul>
|
|
135
|
+
</section>
|
|
136
136
|
`;
|
|
137
137
|
}
|
|
138
138
|
partOfCollectionClicked(e) {
|
|
@@ -215,24 +215,24 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
215
215
|
expandedDatePicker.maxSelectedDate = this.maxSelectedDate;
|
|
216
216
|
}
|
|
217
217
|
};
|
|
218
|
-
const customModalContent = html `
|
|
219
|
-
<expanded-date-picker
|
|
220
|
-
${ref(expandedDatePickerChanged)}
|
|
221
|
-
.minDate=${minDate}
|
|
222
|
-
.maxDate=${maxDate}
|
|
223
|
-
.minSelectedDate=${this.minSelectedDate}
|
|
224
|
-
.maxSelectedDate=${this.maxSelectedDate}
|
|
225
|
-
.customDateFormat=${dateFormat}
|
|
226
|
-
.customTooltipDateFormat=${tooltipDateFormat}
|
|
227
|
-
.customTooltipLabel=${tooltipLabel}
|
|
228
|
-
.binSnapping=${binSnapping}
|
|
229
|
-
.barScaling=${barScaling}
|
|
230
|
-
.buckets=${buckets}
|
|
231
|
-
.modalManager=${this.modalManager}
|
|
232
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
233
|
-
@histogramDateRangeApplied=${this.histogramDateRangeUpdated}
|
|
234
|
-
@modalClosed=${this.handleExpandedDatePickerClosed}
|
|
235
|
-
></expanded-date-picker>
|
|
218
|
+
const customModalContent = html `
|
|
219
|
+
<expanded-date-picker
|
|
220
|
+
${ref(expandedDatePickerChanged)}
|
|
221
|
+
.minDate=${minDate}
|
|
222
|
+
.maxDate=${maxDate}
|
|
223
|
+
.minSelectedDate=${this.minSelectedDate}
|
|
224
|
+
.maxSelectedDate=${this.maxSelectedDate}
|
|
225
|
+
.customDateFormat=${dateFormat}
|
|
226
|
+
.customTooltipDateFormat=${tooltipDateFormat}
|
|
227
|
+
.customTooltipLabel=${tooltipLabel}
|
|
228
|
+
.binSnapping=${binSnapping}
|
|
229
|
+
.barScaling=${barScaling}
|
|
230
|
+
.buckets=${buckets}
|
|
231
|
+
.modalManager=${this.modalManager}
|
|
232
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
233
|
+
@histogramDateRangeApplied=${this.histogramDateRangeUpdated}
|
|
234
|
+
@modalClosed=${this.handleExpandedDatePickerClosed}
|
|
235
|
+
></expanded-date-picker>
|
|
236
236
|
`;
|
|
237
237
|
const config = new ModalConfig({
|
|
238
238
|
bodyColor: '#fff',
|
|
@@ -271,13 +271,13 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
271
271
|
*/
|
|
272
272
|
get expandDatePickerBtnTemplate() {
|
|
273
273
|
return this.allowExpandingDatePicker && !this.facetsLoading
|
|
274
|
-
? html `<button
|
|
275
|
-
class="expand-date-picker-btn"
|
|
276
|
-
aria-hidden="true"
|
|
277
|
-
tabindex="-1"
|
|
278
|
-
@click=${this.showDatePickerModal}
|
|
279
|
-
>
|
|
280
|
-
${expandIcon}
|
|
274
|
+
? html `<button
|
|
275
|
+
class="expand-date-picker-btn"
|
|
276
|
+
aria-hidden="true"
|
|
277
|
+
tabindex="-1"
|
|
278
|
+
@click=${this.showDatePickerModal}
|
|
279
|
+
>
|
|
280
|
+
${expandIcon}
|
|
281
281
|
</button>`
|
|
282
282
|
: nothing;
|
|
283
283
|
}
|
|
@@ -290,26 +290,26 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
290
290
|
if (!histogramProps)
|
|
291
291
|
return nothing;
|
|
292
292
|
const { buckets, dateFormat, tooltipDateFormat, tooltipLabel, binSnapping, barScaling, minDate, maxDate, } = histogramProps;
|
|
293
|
-
return html `
|
|
294
|
-
<histogram-date-range
|
|
295
|
-
class=${this.isTvSearch ? 'wide-inputs' : ''}
|
|
296
|
-
.minDate=${minDate}
|
|
297
|
-
.maxDate=${maxDate}
|
|
298
|
-
.minSelectedDate=${(_a = this.minSelectedDate) !== null && _a !== void 0 ? _a : minDate}
|
|
299
|
-
.maxSelectedDate=${(_b = this.maxSelectedDate) !== null && _b !== void 0 ? _b : maxDate}
|
|
300
|
-
.updateDelay=${100}
|
|
301
|
-
.dateFormat=${dateFormat}
|
|
302
|
-
.tooltipDateFormat=${tooltipDateFormat}
|
|
303
|
-
.tooltipLabel=${tooltipLabel}
|
|
304
|
-
.binSnapping=${binSnapping}
|
|
305
|
-
.barScaling=${barScaling}
|
|
306
|
-
.bins=${buckets}
|
|
307
|
-
missingDataMessage="..."
|
|
293
|
+
return html `
|
|
294
|
+
<histogram-date-range
|
|
295
|
+
class=${this.isTvSearch ? 'wide-inputs' : ''}
|
|
296
|
+
.minDate=${minDate}
|
|
297
|
+
.maxDate=${maxDate}
|
|
298
|
+
.minSelectedDate=${(_a = this.minSelectedDate) !== null && _a !== void 0 ? _a : minDate}
|
|
299
|
+
.maxSelectedDate=${(_b = this.maxSelectedDate) !== null && _b !== void 0 ? _b : maxDate}
|
|
300
|
+
.updateDelay=${100}
|
|
301
|
+
.dateFormat=${dateFormat}
|
|
302
|
+
.tooltipDateFormat=${tooltipDateFormat}
|
|
303
|
+
.tooltipLabel=${tooltipLabel}
|
|
304
|
+
.binSnapping=${binSnapping}
|
|
305
|
+
.barScaling=${barScaling}
|
|
306
|
+
.bins=${buckets}
|
|
307
|
+
missingDataMessage="..."
|
|
308
308
|
.width=${this.collapsableFacets && this.contentWidth
|
|
309
309
|
? this.contentWidth
|
|
310
|
-
: 180}
|
|
311
|
-
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
312
|
-
></histogram-date-range>
|
|
310
|
+
: 180}
|
|
311
|
+
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
312
|
+
></histogram-date-range>
|
|
313
313
|
`;
|
|
314
314
|
}
|
|
315
315
|
/**
|
|
@@ -485,8 +485,8 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
485
485
|
return nothing;
|
|
486
486
|
const { key } = facetGroup;
|
|
487
487
|
const isOpen = this.openFacets[key];
|
|
488
|
-
const collapser = html `
|
|
489
|
-
<span class="collapser ${isOpen ? 'open' : ''}"> ${chevronIcon} </span>
|
|
488
|
+
const collapser = html `
|
|
489
|
+
<span class="collapser ${isOpen ? 'open' : ''}"> ${chevronIcon} </span>
|
|
490
490
|
`;
|
|
491
491
|
const toggleCollapsed = () => {
|
|
492
492
|
const newOpenFacets = { ...this.openFacets };
|
|
@@ -496,40 +496,40 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
496
496
|
// Added data-testid for Playwright testing
|
|
497
497
|
// Using className and aria-labels is not ideal for Playwright locator
|
|
498
498
|
const headerId = `facet-group-header-label-${facetGroup.key}`;
|
|
499
|
-
return html `
|
|
500
|
-
<section
|
|
501
|
-
class="facet-group ${this.collapsableFacets ? 'mobile' : ''}"
|
|
502
|
-
aria-labelledby=${headerId}
|
|
503
|
-
data-testid=${headerId}
|
|
504
|
-
>
|
|
505
|
-
<div class="facet-group-header">
|
|
506
|
-
<h3
|
|
507
|
-
id=${headerId}
|
|
508
|
-
@click=${toggleCollapsed}
|
|
509
|
-
@keyup=${toggleCollapsed}
|
|
510
|
-
>
|
|
511
|
-
${this.collapsableFacets ? collapser : nothing} ${facetGroup.title}
|
|
512
|
-
<span class="sr-only">filters</span>
|
|
513
|
-
</h3>
|
|
514
|
-
</div>
|
|
515
|
-
<div
|
|
516
|
-
class="facet-group-content ${isOpen ? 'open' : ''}"
|
|
517
|
-
data-testid="facet-group-content-${facetGroup.key}"
|
|
518
|
-
>
|
|
499
|
+
return html `
|
|
500
|
+
<section
|
|
501
|
+
class="facet-group ${this.collapsableFacets ? 'mobile' : ''}"
|
|
502
|
+
aria-labelledby=${headerId}
|
|
503
|
+
data-testid=${headerId}
|
|
504
|
+
>
|
|
505
|
+
<div class="facet-group-header">
|
|
506
|
+
<h3
|
|
507
|
+
id=${headerId}
|
|
508
|
+
@click=${toggleCollapsed}
|
|
509
|
+
@keyup=${toggleCollapsed}
|
|
510
|
+
>
|
|
511
|
+
${this.collapsableFacets ? collapser : nothing} ${facetGroup.title}
|
|
512
|
+
<span class="sr-only">filters</span>
|
|
513
|
+
</h3>
|
|
514
|
+
</div>
|
|
515
|
+
<div
|
|
516
|
+
class="facet-group-content ${isOpen ? 'open' : ''}"
|
|
517
|
+
data-testid="facet-group-content-${facetGroup.key}"
|
|
518
|
+
>
|
|
519
519
|
${this.facetsLoading
|
|
520
520
|
? this.getTombstoneFacetGroupTemplate()
|
|
521
|
-
: html `
|
|
522
|
-
${this.getFacetTemplate(facetGroup)}
|
|
523
|
-
${this.searchMoreFacetsLink(facetGroup)}
|
|
524
|
-
`}
|
|
525
|
-
</div>
|
|
526
|
-
</section>
|
|
521
|
+
: html `
|
|
522
|
+
${this.getFacetTemplate(facetGroup)}
|
|
523
|
+
${this.searchMoreFacetsLink(facetGroup)}
|
|
524
|
+
`}
|
|
525
|
+
</div>
|
|
526
|
+
</section>
|
|
527
527
|
`;
|
|
528
528
|
}
|
|
529
529
|
getTombstoneFacetGroupTemplate() {
|
|
530
530
|
// Render five tombstone rows
|
|
531
|
-
return html `
|
|
532
|
-
${map(Array(5).fill(null), () => html `<facet-tombstone-row></facet-tombstone-row>`)}
|
|
531
|
+
return html `
|
|
532
|
+
${map(Array(5).fill(null), () => html `<facet-tombstone-row></facet-tombstone-row>`)}
|
|
533
533
|
`;
|
|
534
534
|
}
|
|
535
535
|
/**
|
|
@@ -554,8 +554,8 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
554
554
|
const facetSort = defaultFacetSort[facetGroup.key];
|
|
555
555
|
// Added data-testid for Playwright testing
|
|
556
556
|
// Using the className is not ideal for Playwright locator
|
|
557
|
-
return html `<button
|
|
558
|
-
class="more-link"
|
|
557
|
+
return html `<button
|
|
558
|
+
class="more-link"
|
|
559
559
|
@click=${() => {
|
|
560
560
|
var _a;
|
|
561
561
|
this.showMoreFacetsModal(facetGroup, facetSort);
|
|
@@ -565,30 +565,30 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
565
565
|
label: facetGroup.key,
|
|
566
566
|
});
|
|
567
567
|
this.dispatchEvent(new CustomEvent('showMoreFacets', { detail: facetGroup.key }));
|
|
568
|
-
}}
|
|
569
|
-
data-testid="more-link-btn"
|
|
570
|
-
>
|
|
571
|
-
More...
|
|
568
|
+
}}
|
|
569
|
+
data-testid="more-link-btn"
|
|
570
|
+
>
|
|
571
|
+
More...
|
|
572
572
|
</button>`;
|
|
573
573
|
}
|
|
574
574
|
async showMoreFacetsModal(facetGroup, sortedBy) {
|
|
575
575
|
var _a, _b;
|
|
576
|
-
const customModalContent = html `
|
|
577
|
-
<more-facets-content
|
|
578
|
-
.analyticsHandler=${this.analyticsHandler}
|
|
579
|
-
.facetKey=${facetGroup.key}
|
|
580
|
-
.query=${this.query}
|
|
581
|
-
.identifiers=${this.identifiers}
|
|
582
|
-
.filterMap=${this.filterMap}
|
|
583
|
-
.pageSpecifierParams=${this.pageSpecifierParams}
|
|
584
|
-
.modalManager=${this.modalManager}
|
|
585
|
-
.searchService=${this.searchService}
|
|
586
|
-
.searchType=${this.searchType}
|
|
587
|
-
.collectionTitles=${this.collectionTitles}
|
|
588
|
-
.tvChannelAliases=${this.tvChannelAliases}
|
|
589
|
-
.selectedFacets=${this.selectedFacets}
|
|
590
|
-
.sortedBy=${sortedBy}
|
|
591
|
-
.isTvSearch=${this.isTvSearch}
|
|
576
|
+
const customModalContent = html `
|
|
577
|
+
<more-facets-content
|
|
578
|
+
.analyticsHandler=${this.analyticsHandler}
|
|
579
|
+
.facetKey=${facetGroup.key}
|
|
580
|
+
.query=${this.query}
|
|
581
|
+
.identifiers=${this.identifiers}
|
|
582
|
+
.filterMap=${this.filterMap}
|
|
583
|
+
.pageSpecifierParams=${this.pageSpecifierParams}
|
|
584
|
+
.modalManager=${this.modalManager}
|
|
585
|
+
.searchService=${this.searchService}
|
|
586
|
+
.searchType=${this.searchType}
|
|
587
|
+
.collectionTitles=${this.collectionTitles}
|
|
588
|
+
.tvChannelAliases=${this.tvChannelAliases}
|
|
589
|
+
.selectedFacets=${this.selectedFacets}
|
|
590
|
+
.sortedBy=${sortedBy}
|
|
591
|
+
.isTvSearch=${this.isTvSearch}
|
|
592
592
|
@facetsChanged=${(e) => {
|
|
593
593
|
const event = new CustomEvent('facetsChanged', {
|
|
594
594
|
detail: e.detail,
|
|
@@ -596,9 +596,9 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
596
596
|
composed: true,
|
|
597
597
|
});
|
|
598
598
|
this.dispatchEvent(event);
|
|
599
|
-
}}
|
|
600
|
-
>
|
|
601
|
-
</more-facets-content>
|
|
599
|
+
}}
|
|
600
|
+
>
|
|
601
|
+
</more-facets-content>
|
|
602
602
|
`;
|
|
603
603
|
const config = new ModalConfig({
|
|
604
604
|
bodyColor: '#fff',
|
|
@@ -621,12 +621,12 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
621
621
|
* Generate the list template for each bucket in a facet group
|
|
622
622
|
*/
|
|
623
623
|
getFacetTemplate(facetGroup) {
|
|
624
|
-
return html `
|
|
625
|
-
<facets-template
|
|
626
|
-
.collectionPagePath=${this.collectionPagePath}
|
|
627
|
-
.facetGroup=${facetGroup}
|
|
628
|
-
.selectedFacets=${this.selectedFacets}
|
|
629
|
-
.collectionTitles=${this.collectionTitles}
|
|
624
|
+
return html `
|
|
625
|
+
<facets-template
|
|
626
|
+
.collectionPagePath=${this.collectionPagePath}
|
|
627
|
+
.facetGroup=${facetGroup}
|
|
628
|
+
.selectedFacets=${this.selectedFacets}
|
|
629
|
+
.collectionTitles=${this.collectionTitles}
|
|
630
630
|
@facetClick=${(e) => {
|
|
631
631
|
this.selectedFacets = updateSelectedFacetBucket(this.selectedFacets, facetGroup.key, e.detail.bucket, true);
|
|
632
632
|
const event = new CustomEvent('facetsChanged', {
|
|
@@ -635,134 +635,134 @@ let CollectionFacets = class CollectionFacets extends LitElement {
|
|
|
635
635
|
composed: true,
|
|
636
636
|
});
|
|
637
637
|
this.dispatchEvent(event);
|
|
638
|
-
}}
|
|
639
|
-
></facets-template>
|
|
638
|
+
}}
|
|
639
|
+
></facets-template>
|
|
640
640
|
`;
|
|
641
641
|
}
|
|
642
642
|
static get styles() {
|
|
643
643
|
return [
|
|
644
644
|
srOnlyStyle,
|
|
645
|
-
css `
|
|
646
|
-
a:link {
|
|
647
|
-
text-decoration: none;
|
|
648
|
-
color: var(--ia-theme-link-color, #4b64ff);
|
|
649
|
-
}
|
|
650
|
-
a:link:hover {
|
|
651
|
-
text-decoration: underline;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
#container.loading {
|
|
655
|
-
opacity: 0.5;
|
|
656
|
-
}
|
|
657
|
-
|
|
658
|
-
#container.managing {
|
|
659
|
-
opacity: 0.3;
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
.histogram-loading-indicator {
|
|
663
|
-
width: 100%;
|
|
664
|
-
height: 2.25rem;
|
|
665
|
-
margin-top: 1.75rem;
|
|
666
|
-
font-size: 1.4rem;
|
|
667
|
-
text-align: center;
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
.collapser {
|
|
671
|
-
display: inline-block;
|
|
672
|
-
cursor: pointer;
|
|
673
|
-
width: 10px;
|
|
674
|
-
height: 10px;
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
.collapser svg {
|
|
678
|
-
transition: transform 0.2s ease-in-out;
|
|
679
|
-
}
|
|
680
|
-
|
|
681
|
-
.collapser.open svg {
|
|
682
|
-
transform: rotate(90deg);
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
.facet-group:not(:last-child) {
|
|
686
|
-
margin-bottom: 2rem;
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
.facet-group h3 {
|
|
690
|
-
margin-bottom: 0.7rem;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
.facet-group.mobile h3 {
|
|
694
|
-
cursor: pointer;
|
|
695
|
-
}
|
|
696
|
-
|
|
697
|
-
.facet-group-header {
|
|
698
|
-
display: flex;
|
|
699
|
-
margin-bottom: 0.7rem;
|
|
700
|
-
justify-content: space-between;
|
|
701
|
-
border-bottom: 1px solid rgb(232, 232, 232);
|
|
702
|
-
}
|
|
703
|
-
|
|
704
|
-
.facet-group-content {
|
|
705
|
-
transition: max-height 0.2s ease-in-out;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
.facet-group.mobile .facet-group-content {
|
|
709
|
-
max-height: 0;
|
|
710
|
-
overflow: hidden;
|
|
711
|
-
}
|
|
712
|
-
|
|
713
|
-
.facet-group.mobile .facet-group-content.open {
|
|
714
|
-
max-height: 2000px;
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
.partof-collections ul {
|
|
718
|
-
list-style-type: none;
|
|
719
|
-
padding: 0;
|
|
720
|
-
font-size: 1.2rem;
|
|
721
|
-
}
|
|
722
|
-
|
|
723
|
-
h3 {
|
|
724
|
-
font-size: 1.4rem;
|
|
725
|
-
margin: 0;
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
.more-link {
|
|
729
|
-
font-size: 1.2rem;
|
|
730
|
-
text-decoration: none;
|
|
731
|
-
padding: 0;
|
|
732
|
-
margin-top: 0.25rem;
|
|
733
|
-
background: inherit;
|
|
734
|
-
border: 0;
|
|
735
|
-
color: var(--ia-theme-link-color, #4b64ff);
|
|
736
|
-
cursor: pointer;
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
#date-picker-label {
|
|
740
|
-
display: flex;
|
|
741
|
-
justify-content: space-between;
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
.expand-date-picker-btn {
|
|
745
|
-
margin: 0;
|
|
746
|
-
padding: 0;
|
|
747
|
-
border: 0;
|
|
748
|
-
appearance: none;
|
|
749
|
-
background: none;
|
|
750
|
-
cursor: pointer;
|
|
751
|
-
}
|
|
752
|
-
|
|
753
|
-
.expand-date-picker-btn > svg {
|
|
754
|
-
width: 14px;
|
|
755
|
-
height: 14px;
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
.sorting-icon {
|
|
759
|
-
height: 15px;
|
|
760
|
-
cursor: pointer;
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
histogram-date-range.wide-inputs {
|
|
764
|
-
--histogramDateRangeInputWidth: 4.8rem;
|
|
765
|
-
}
|
|
645
|
+
css `
|
|
646
|
+
a:link {
|
|
647
|
+
text-decoration: none;
|
|
648
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
649
|
+
}
|
|
650
|
+
a:link:hover {
|
|
651
|
+
text-decoration: underline;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
#container.loading {
|
|
655
|
+
opacity: 0.5;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
#container.managing {
|
|
659
|
+
opacity: 0.3;
|
|
660
|
+
}
|
|
661
|
+
|
|
662
|
+
.histogram-loading-indicator {
|
|
663
|
+
width: 100%;
|
|
664
|
+
height: 2.25rem;
|
|
665
|
+
margin-top: 1.75rem;
|
|
666
|
+
font-size: 1.4rem;
|
|
667
|
+
text-align: center;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
.collapser {
|
|
671
|
+
display: inline-block;
|
|
672
|
+
cursor: pointer;
|
|
673
|
+
width: 10px;
|
|
674
|
+
height: 10px;
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
.collapser svg {
|
|
678
|
+
transition: transform 0.2s ease-in-out;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.collapser.open svg {
|
|
682
|
+
transform: rotate(90deg);
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
.facet-group:not(:last-child) {
|
|
686
|
+
margin-bottom: 2rem;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
.facet-group h3 {
|
|
690
|
+
margin-bottom: 0.7rem;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.facet-group.mobile h3 {
|
|
694
|
+
cursor: pointer;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
.facet-group-header {
|
|
698
|
+
display: flex;
|
|
699
|
+
margin-bottom: 0.7rem;
|
|
700
|
+
justify-content: space-between;
|
|
701
|
+
border-bottom: 1px solid rgb(232, 232, 232);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
.facet-group-content {
|
|
705
|
+
transition: max-height 0.2s ease-in-out;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.facet-group.mobile .facet-group-content {
|
|
709
|
+
max-height: 0;
|
|
710
|
+
overflow: hidden;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
.facet-group.mobile .facet-group-content.open {
|
|
714
|
+
max-height: 2000px;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.partof-collections ul {
|
|
718
|
+
list-style-type: none;
|
|
719
|
+
padding: 0;
|
|
720
|
+
font-size: 1.2rem;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
h3 {
|
|
724
|
+
font-size: 1.4rem;
|
|
725
|
+
margin: 0;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
.more-link {
|
|
729
|
+
font-size: 1.2rem;
|
|
730
|
+
text-decoration: none;
|
|
731
|
+
padding: 0;
|
|
732
|
+
margin-top: 0.25rem;
|
|
733
|
+
background: inherit;
|
|
734
|
+
border: 0;
|
|
735
|
+
color: var(--ia-theme-link-color, #4b64ff);
|
|
736
|
+
cursor: pointer;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
#date-picker-label {
|
|
740
|
+
display: flex;
|
|
741
|
+
justify-content: space-between;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
.expand-date-picker-btn {
|
|
745
|
+
margin: 0;
|
|
746
|
+
padding: 0;
|
|
747
|
+
border: 0;
|
|
748
|
+
appearance: none;
|
|
749
|
+
background: none;
|
|
750
|
+
cursor: pointer;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
.expand-date-picker-btn > svg {
|
|
754
|
+
width: 14px;
|
|
755
|
+
height: 14px;
|
|
756
|
+
}
|
|
757
|
+
|
|
758
|
+
.sorting-icon {
|
|
759
|
+
height: 15px;
|
|
760
|
+
cursor: pointer;
|
|
761
|
+
}
|
|
762
|
+
|
|
763
|
+
histogram-date-range.wide-inputs {
|
|
764
|
+
--histogramDateRangeInputWidth: 4.8rem;
|
|
765
|
+
}
|
|
766
766
|
`,
|
|
767
767
|
];
|
|
768
768
|
}
|