@internetarchive/collection-browser 2.7.6 → 2.7.7-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +3 -3
- package/.prettierignore +1 -0
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +1 -1
- package/dist/src/app-root.js +2 -3
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/assets/img/icons/arrow-left.d.ts +1 -1
- package/dist/src/assets/img/icons/arrow-right.d.ts +1 -1
- package/dist/src/assets/img/icons/chevron.d.ts +1 -1
- package/dist/src/assets/img/icons/contract.d.ts +1 -1
- package/dist/src/assets/img/icons/empty-query.d.ts +1 -1
- package/dist/src/assets/img/icons/expand.d.ts +1 -1
- package/dist/src/assets/img/icons/eye-closed.d.ts +1 -1
- package/dist/src/assets/img/icons/eye.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
- package/dist/src/assets/img/icons/filter.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/null-result.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/circular-activity-indicator.d.ts +1 -1
- package/dist/src/circular-activity-indicator.js.map +1 -1
- package/dist/src/collection-browser.js +1 -2
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
- package/dist/src/collection-facets/facets-template.js +5 -5
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +1 -1
- package/dist/src/collection-facets/more-facets-content.js +2 -4
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.js +1 -0
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/models.d.ts +2 -2
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +1 -4
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.d.ts +2 -2
- package/dist/src/collection-facets/toggle-switch.js +2 -2
- package/dist/src/collection-facets/toggle-switch.js.map +1 -1
- package/dist/src/collection-facets.js +2 -3
- package/dist/src/collection-facets.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 +8 -9
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/models.d.ts +2 -2
- package/dist/src/empty-placeholder.d.ts +1 -1
- package/dist/src/empty-placeholder.js +10 -11
- package/dist/src/empty-placeholder.js.map +1 -1
- package/dist/src/expanded-date-picker.js.map +1 -1
- package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +86 -86
- package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
- package/dist/src/manage/manage-bar.js +10 -10
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/mediatype/mediatype-config.js +1 -0
- package/dist/src/mediatype/mediatype-config.js.map +1 -1
- package/dist/src/models.d.ts +15 -15
- package/dist/src/models.js +3 -3
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.js +0 -1
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.js +9 -9
- package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js +1 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +2 -3
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/search-tile.js.map +1 -1
- package/dist/src/tiles/grid/tile-stats.d.ts +1 -1
- package/dist/src/tiles/grid/tile-stats.js +2 -2
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.js +3 -1
- package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
- package/dist/src/tiles/image-block.d.ts +1 -1
- package/dist/src/tiles/image-block.js +1 -1
- package/dist/src/tiles/image-block.js.map +1 -1
- package/dist/src/tiles/item-image.d.ts +1 -1
- package/dist/src/tiles/item-image.js +2 -2
- package/dist/src/tiles/item-image.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.d.ts +1 -1
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +4 -6
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/mediatype-icon.d.ts +1 -1
- package/dist/src/tiles/mediatype-icon.js.map +1 -1
- package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
- package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
- package/dist/src/tiles/review-block.js.map +1 -1
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +1 -1
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/src/utils/facet-utils.js.map +1 -1
- package/dist/src/utils/format-count.d.ts +2 -2
- package/dist/src/utils/format-count.js +0 -1
- package/dist/src/utils/format-count.js.map +1 -1
- package/dist/src/utils/format-date.d.ts +1 -1
- package/dist/src/utils/format-date.js +4 -2
- package/dist/src/utils/format-date.js.map +1 -1
- package/dist/src/utils/format-unit-size.js.map +1 -1
- package/dist/src/utils/log.js +1 -3
- package/dist/src/utils/log.js.map +1 -1
- package/dist/src/utils/resolve-mediatype.js.map +1 -1
- package/dist/test/collection-browser.test.js +2 -1
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facet-row.test.js +4 -1
- package/dist/test/collection-facets/facet-row.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +0 -1
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +0 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +12 -3
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
- package/dist/test/collection-facets.test.js +0 -1
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.js +0 -1
- package/dist/test/empty-placeholder.test.js.map +1 -1
- package/dist/test/expanded-date-picker.test.js.map +1 -1
- package/dist/test/icon-overlay.test.js +0 -1
- package/dist/test/icon-overlay.test.js.map +1 -1
- package/dist/test/image-block.test.js +0 -1
- package/dist/test/image-block.test.js.map +1 -1
- package/dist/test/item-image.test.js +0 -1
- package/dist/test/item-image.test.js.map +1 -1
- package/dist/test/manage/manage-bar.test.js +0 -1
- package/dist/test/manage/manage-bar.test.js.map +1 -1
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.js.map +1 -1
- package/dist/test/review-block.test.js +0 -1
- package/dist/test/review-block.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +0 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.js +0 -1
- package/dist/test/text-overlay.test.js.map +1 -1
- package/dist/test/text-snippet-block.test.js +0 -1
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.js +22 -23
- package/dist/test/tile-stats.test.js.map +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +0 -1
- package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +0 -1
- package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +0 -1
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +0 -1
- package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +0 -1
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +0 -1
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/dist/test/utils/format-count.test.js.map +1 -1
- package/dist/test/utils/format-date.test.js +13 -0
- package/dist/test/utils/format-date.test.js.map +1 -1
- package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
- package/eslint.config.mjs +53 -0
- package/index.html +0 -3
- package/package.json +38 -37
- package/src/app-root.ts +20 -21
- package/src/collection-browser.ts +33 -35
- package/src/collection-facets/facets-template.ts +7 -6
- package/src/collection-facets/more-facets-content.ts +11 -13
- package/src/collection-facets/more-facets-pagination.ts +3 -2
- package/src/collection-facets/smart-facets/dedupe.ts +2 -2
- package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
- package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
- package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
- package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
- package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
- package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
- package/src/collection-facets/toggle-switch.ts +2 -2
- package/src/collection-facets.ts +18 -19
- package/src/data-source/collection-browser-data-source-interface.ts +5 -1
- package/src/data-source/collection-browser-data-source.ts +37 -34
- package/src/empty-placeholder.ts +19 -16
- package/src/expanded-date-picker.ts +1 -1
- package/src/language-code-handler/language-code-handler.ts +1 -1
- package/src/manage/manage-bar.ts +14 -12
- package/src/mediatype/mediatype-config.ts +1 -0
- package/src/models.ts +3 -3
- package/src/restoration-state-handler.ts +14 -15
- package/src/sort-filter-bar/alpha-bar.ts +16 -17
- package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
- package/src/tiles/grid/account-tile.ts +1 -1
- package/src/tiles/grid/collection-tile.ts +1 -1
- package/src/tiles/grid/item-tile.ts +9 -9
- package/src/tiles/grid/tile-stats.ts +4 -4
- package/src/tiles/hover/hover-pane-controller.ts +1 -1
- package/src/tiles/hover/tile-hover-pane.ts +4 -2
- package/src/tiles/item-image.ts +1 -1
- package/src/tiles/list/tile-list-compact.ts +2 -2
- package/src/tiles/list/tile-list.ts +22 -24
- package/src/tiles/tile-dispatcher.ts +5 -5
- package/src/tiles/tile-display-value-provider.ts +4 -4
- package/src/utils/facet-utils.ts +6 -6
- package/src/utils/format-count.ts +2 -3
- package/src/utils/format-date.ts +5 -3
- package/src/utils/format-unit-size.ts +1 -1
- package/src/utils/log.ts +1 -3
- package/test/collection-browser.test.ts +123 -122
- package/test/collection-facets/facet-row.test.ts +31 -28
- package/test/collection-facets/facets-template.test.ts +9 -9
- package/test/collection-facets/more-facets-content.test.ts +14 -15
- package/test/collection-facets/more-facets-pagination.test.ts +18 -19
- package/test/collection-facets/toggle-switch.test.ts +28 -18
- package/test/collection-facets.test.ts +36 -37
- package/test/data-source/collection-browser-data-source.test.ts +2 -2
- package/test/empty-placeholder.test.ts +6 -7
- package/test/expanded-date-picker.test.ts +17 -18
- package/test/icon-overlay.test.ts +0 -1
- package/test/image-block.test.ts +6 -7
- package/test/item-image.test.ts +0 -1
- package/test/manage/manage-bar.test.ts +13 -14
- package/test/mocks/mock-search-responses.ts +2 -1
- package/test/mocks/mock-search-service.ts +1 -1
- package/test/restoration-state-handler.test.ts +12 -12
- package/test/review-block.test.ts +1 -2
- package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
- package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
- package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
- package/test/text-overlay.test.ts +0 -1
- package/test/text-snippet-block.test.ts +5 -6
- package/test/tile-stats.test.ts +26 -35
- package/test/tiles/grid/account-tile.test.ts +2 -3
- package/test/tiles/grid/collection-tile.test.ts +3 -4
- package/test/tiles/grid/item-tile.test.ts +13 -14
- package/test/tiles/grid/search-tile.test.ts +1 -2
- package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
- package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
- package/test/tiles/list/tile-list-compact.test.ts +1 -2
- package/test/tiles/list/tile-list.test.ts +10 -11
- package/test/tiles/tile-dispatcher.test.ts +5 -5
- package/test/utils/format-count.test.ts +1 -1
- package/test/utils/format-date.test.ts +17 -0
- package/test/utils/local-date-from-utc.test.ts +1 -1
- package/tsconfig.json +0 -1
package/src/collection-facets.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
1
|
import {
|
|
3
2
|
css,
|
|
4
3
|
html,
|
|
@@ -171,7 +170,7 @@ export class CollectionFacets extends LitElement {
|
|
|
171
170
|
: nothing}
|
|
172
171
|
${this.collectionPartOfTemplate}
|
|
173
172
|
${this.mergedFacets.map(facetGroup =>
|
|
174
|
-
this.getFacetGroupTemplate(facetGroup)
|
|
173
|
+
this.getFacetGroupTemplate(facetGroup),
|
|
175
174
|
)}
|
|
176
175
|
</div>
|
|
177
176
|
`;
|
|
@@ -349,7 +348,7 @@ export class CollectionFacets extends LitElement {
|
|
|
349
348
|
e: CustomEvent<{
|
|
350
349
|
minDate: string;
|
|
351
350
|
maxDate: string;
|
|
352
|
-
}
|
|
351
|
+
}>,
|
|
353
352
|
): void => {
|
|
354
353
|
const { minDate, maxDate } = e.detail;
|
|
355
354
|
const event = new CustomEvent('histogramDateRangeUpdated', {
|
|
@@ -366,10 +365,10 @@ export class CollectionFacets extends LitElement {
|
|
|
366
365
|
|
|
367
366
|
facetDisplayOrder.forEach(facetKey => {
|
|
368
367
|
const selectedFacetGroup = this.selectedFacetGroups.find(
|
|
369
|
-
group => group.key === facetKey
|
|
368
|
+
group => group.key === facetKey,
|
|
370
369
|
);
|
|
371
370
|
const aggregateFacetGroup = this.aggregationFacetGroups.find(
|
|
372
|
-
group => group.key === facetKey
|
|
371
|
+
group => group.key === facetKey,
|
|
373
372
|
);
|
|
374
373
|
|
|
375
374
|
// if the user selected a facet, but it's not in the aggregation, we add it as-is
|
|
@@ -388,7 +387,7 @@ export class CollectionFacets extends LitElement {
|
|
|
388
387
|
let bucketsWithCount =
|
|
389
388
|
selectedFacetGroup?.buckets.map(bucket => {
|
|
390
389
|
const selectedBucket = aggregateFacetGroup.buckets.find(
|
|
391
|
-
b => b.key === bucket.key
|
|
390
|
+
b => b.key === bucket.key,
|
|
392
391
|
);
|
|
393
392
|
return selectedBucket
|
|
394
393
|
? {
|
|
@@ -412,7 +411,7 @@ export class CollectionFacets extends LitElement {
|
|
|
412
411
|
* - additionally want to show all items (selected/suppressed) in page facet area
|
|
413
412
|
*/
|
|
414
413
|
let allowedFacetCount = Object.keys(
|
|
415
|
-
(selectedFacetGroup?.buckets as []) || []
|
|
414
|
+
(selectedFacetGroup?.buckets as []) || [],
|
|
416
415
|
)?.length;
|
|
417
416
|
if (allowedFacetCount < this.allowedFacetCount) {
|
|
418
417
|
allowedFacetCount = this.allowedFacetCount; // splice start index from 0th
|
|
@@ -421,7 +420,7 @@ export class CollectionFacets extends LitElement {
|
|
|
421
420
|
// For lending facets, only include a specific subset of buckets
|
|
422
421
|
if (facetKey === 'lending') {
|
|
423
422
|
bucketsWithCount = bucketsWithCount.filter(
|
|
424
|
-
bucket => lendingFacetKeysVisibility[bucket.key as LendingFacetKey]
|
|
423
|
+
bucket => lendingFacetKeysVisibility[bucket.key as LendingFacetKey],
|
|
425
424
|
);
|
|
426
425
|
}
|
|
427
426
|
|
|
@@ -431,13 +430,13 @@ export class CollectionFacets extends LitElement {
|
|
|
431
430
|
// For mediatype facets, ensure the collection bucket is always shown if present
|
|
432
431
|
if (facetKey === 'mediatype') {
|
|
433
432
|
const collectionIndex = bucketsWithCount.findIndex(
|
|
434
|
-
bucket => bucket.key === 'collection'
|
|
433
|
+
bucket => bucket.key === 'collection',
|
|
435
434
|
);
|
|
436
435
|
|
|
437
436
|
if (collectionIndex >= allowedFacetCount) {
|
|
438
437
|
const [collectionBucket] = bucketsWithCount.splice(
|
|
439
438
|
collectionIndex,
|
|
440
|
-
1
|
|
439
|
+
1,
|
|
441
440
|
);
|
|
442
441
|
|
|
443
442
|
// If we're showing lots of selected facets, ensure we're not cutting off the last one
|
|
@@ -484,7 +483,7 @@ export class CollectionFacets extends LitElement {
|
|
|
484
483
|
count: facetData.count,
|
|
485
484
|
state: facetData.state,
|
|
486
485
|
};
|
|
487
|
-
}
|
|
486
|
+
},
|
|
488
487
|
);
|
|
489
488
|
|
|
490
489
|
return {
|
|
@@ -492,7 +491,7 @@ export class CollectionFacets extends LitElement {
|
|
|
492
491
|
key: option,
|
|
493
492
|
buckets,
|
|
494
493
|
};
|
|
495
|
-
}
|
|
494
|
+
},
|
|
496
495
|
);
|
|
497
496
|
|
|
498
497
|
return facetGroups;
|
|
@@ -512,7 +511,7 @@ export class CollectionFacets extends LitElement {
|
|
|
512
511
|
if (!title) return;
|
|
513
512
|
|
|
514
513
|
let castedBuckets = aggregation.getSortedBuckets(
|
|
515
|
-
defaultFacetSort[option]
|
|
514
|
+
defaultFacetSort[option],
|
|
516
515
|
) as Bucket[];
|
|
517
516
|
|
|
518
517
|
if (option === 'collection') {
|
|
@@ -556,7 +555,7 @@ export class CollectionFacets extends LitElement {
|
|
|
556
555
|
* chevron for the mobile view
|
|
557
556
|
*/
|
|
558
557
|
private getFacetGroupTemplate(
|
|
559
|
-
facetGroup: FacetGroup
|
|
558
|
+
facetGroup: FacetGroup,
|
|
560
559
|
): TemplateResult | typeof nothing {
|
|
561
560
|
if (!this.facetsLoading && facetGroup.buckets.length === 0) return nothing;
|
|
562
561
|
|
|
@@ -611,7 +610,7 @@ export class CollectionFacets extends LitElement {
|
|
|
611
610
|
return html`
|
|
612
611
|
${map(
|
|
613
612
|
Array(5).fill(null),
|
|
614
|
-
() => html`<facet-tombstone-row></facet-tombstone-row
|
|
613
|
+
() => html`<facet-tombstone-row></facet-tombstone-row>`,
|
|
615
614
|
)}
|
|
616
615
|
`;
|
|
617
616
|
}
|
|
@@ -622,7 +621,7 @@ export class CollectionFacets extends LitElement {
|
|
|
622
621
|
* TODO: want to fire analytics?
|
|
623
622
|
*/
|
|
624
623
|
private searchMoreFacetsLink(
|
|
625
|
-
facetGroup: FacetGroup
|
|
624
|
+
facetGroup: FacetGroup,
|
|
626
625
|
): TemplateResult | typeof nothing {
|
|
627
626
|
// Don't render More... links for FTS searches
|
|
628
627
|
if (!this.moreLinksVisible) {
|
|
@@ -654,7 +653,7 @@ export class CollectionFacets extends LitElement {
|
|
|
654
653
|
label: facetGroup.key,
|
|
655
654
|
});
|
|
656
655
|
this.dispatchEvent(
|
|
657
|
-
new CustomEvent('showMoreFacets', { detail: facetGroup.key })
|
|
656
|
+
new CustomEvent('showMoreFacets', { detail: facetGroup.key }),
|
|
658
657
|
);
|
|
659
658
|
}}
|
|
660
659
|
data-testid="more-link-btn"
|
|
@@ -665,7 +664,7 @@ export class CollectionFacets extends LitElement {
|
|
|
665
664
|
|
|
666
665
|
async showMoreFacetsModal(
|
|
667
666
|
facetGroup: FacetGroup,
|
|
668
|
-
sortedBy: AggregationSortType
|
|
667
|
+
sortedBy: AggregationSortType,
|
|
669
668
|
): Promise<void> {
|
|
670
669
|
const customModalContent = html`
|
|
671
670
|
<more-facets-content
|
|
@@ -724,7 +723,7 @@ export class CollectionFacets extends LitElement {
|
|
|
724
723
|
this.selectedFacets,
|
|
725
724
|
facetGroup.key,
|
|
726
725
|
e.detail.bucket,
|
|
727
|
-
true
|
|
726
|
+
true,
|
|
728
727
|
);
|
|
729
728
|
|
|
730
729
|
const event = new CustomEvent<SelectedFacets>('facetsChanged', {
|
|
@@ -280,7 +280,11 @@ export interface CollectionBrowserDataSourceInterface
|
|
|
280
280
|
* @param callback A callback function to apply on each tile model, as with Array.map
|
|
281
281
|
*/
|
|
282
282
|
map(
|
|
283
|
-
callback: (
|
|
283
|
+
callback: (
|
|
284
|
+
model: TileModel,
|
|
285
|
+
index: number,
|
|
286
|
+
array: TileModel[],
|
|
287
|
+
) => TileModel,
|
|
284
288
|
): void;
|
|
285
289
|
|
|
286
290
|
/**
|
|
@@ -162,13 +162,12 @@ export class CollectionBrowserDataSource
|
|
|
162
162
|
return this._initialSearchCompletePromise;
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
// eslint-disable-next-line no-useless-constructor
|
|
166
165
|
constructor(
|
|
167
166
|
/** The host element to which this controller should attach listeners */
|
|
168
167
|
private readonly host: ReactiveControllerHost &
|
|
169
168
|
CollectionBrowserSearchInterface,
|
|
170
169
|
/** Default size of result pages */
|
|
171
|
-
private pageSize: number = 50
|
|
170
|
+
private pageSize: number = 50,
|
|
172
171
|
) {
|
|
173
172
|
// Just setting some property values
|
|
174
173
|
}
|
|
@@ -264,13 +263,13 @@ export class CollectionBrowserDataSource
|
|
|
264
263
|
const pageStartIndex = this.pageSize * i;
|
|
265
264
|
this.addPage(
|
|
266
265
|
firstPageNum + i,
|
|
267
|
-
tiles.slice(pageStartIndex, pageStartIndex + this.pageSize)
|
|
266
|
+
tiles.slice(pageStartIndex, pageStartIndex + this.pageSize),
|
|
268
267
|
);
|
|
269
268
|
}
|
|
270
269
|
|
|
271
270
|
const visiblePages = this.host.currentVisiblePageNumbers;
|
|
272
271
|
const needsReload = visiblePages.some(
|
|
273
|
-
page => page >= firstPageNum && page <= firstPageNum + numPages
|
|
272
|
+
page => page >= firstPageNum && page <= firstPageNum + numPages,
|
|
274
273
|
);
|
|
275
274
|
if (needsReload) {
|
|
276
275
|
this.refreshVisibleResults();
|
|
@@ -431,15 +430,19 @@ export class CollectionBrowserDataSource
|
|
|
431
430
|
* @inheritdoc
|
|
432
431
|
*/
|
|
433
432
|
map(
|
|
434
|
-
callback: (
|
|
433
|
+
callback: (
|
|
434
|
+
model: TileModel,
|
|
435
|
+
index: number,
|
|
436
|
+
array: TileModel[],
|
|
437
|
+
) => TileModel,
|
|
435
438
|
): void {
|
|
436
439
|
this.pages = Object.fromEntries(
|
|
437
440
|
Object.entries(this.pages).map(([page, tileModels]) => [
|
|
438
441
|
page,
|
|
439
442
|
tileModels.map((model, index, array) =>
|
|
440
|
-
model ? callback(model, index, array) : model
|
|
443
|
+
model ? callback(model, index, array) : model,
|
|
441
444
|
),
|
|
442
|
-
])
|
|
445
|
+
]),
|
|
443
446
|
);
|
|
444
447
|
this.requestHostUpdate();
|
|
445
448
|
this.refreshVisibleResults();
|
|
@@ -536,12 +539,12 @@ export class CollectionBrowserDataSource
|
|
|
536
539
|
* @returns A filtered array of tile models satisfying the predicate
|
|
537
540
|
*/
|
|
538
541
|
private getFilteredTileModels(
|
|
539
|
-
predicate: (model: TileModel, index: number, array: TileModel[]) => unknown
|
|
542
|
+
predicate: (model: TileModel, index: number, array: TileModel[]) => unknown,
|
|
540
543
|
): TileModel[] {
|
|
541
544
|
return Object.values(this.pages)
|
|
542
545
|
.flat()
|
|
543
546
|
.filter((model, index, array) =>
|
|
544
|
-
model ? predicate(model, index, array) : false
|
|
547
|
+
model ? predicate(model, index, array) : false,
|
|
545
548
|
);
|
|
546
549
|
}
|
|
547
550
|
|
|
@@ -653,25 +656,25 @@ export class CollectionBrowserDataSource
|
|
|
653
656
|
builder.addFilter(
|
|
654
657
|
'year',
|
|
655
658
|
this.host.minSelectedDate,
|
|
656
|
-
FilterConstraint.GREATER_OR_EQUAL
|
|
659
|
+
FilterConstraint.GREATER_OR_EQUAL,
|
|
657
660
|
);
|
|
658
661
|
}
|
|
659
662
|
if (this.host.maxSelectedDate) {
|
|
660
663
|
builder.addFilter(
|
|
661
664
|
'year',
|
|
662
665
|
this.host.maxSelectedDate,
|
|
663
|
-
FilterConstraint.LESS_OR_EQUAL
|
|
666
|
+
FilterConstraint.LESS_OR_EQUAL,
|
|
664
667
|
);
|
|
665
668
|
}
|
|
666
669
|
|
|
667
670
|
// Add any selected facets
|
|
668
671
|
if (this.host.selectedFacets) {
|
|
669
672
|
for (const [facetName, facetValues] of Object.entries(
|
|
670
|
-
this.host.selectedFacets
|
|
673
|
+
this.host.selectedFacets,
|
|
671
674
|
)) {
|
|
672
675
|
const { name, values } = this.prepareFacetForFetch(
|
|
673
676
|
facetName,
|
|
674
|
-
facetValues
|
|
677
|
+
facetValues,
|
|
675
678
|
);
|
|
676
679
|
for (const [value, bucket] of Object.entries(values)) {
|
|
677
680
|
let constraint;
|
|
@@ -693,14 +696,14 @@ export class CollectionBrowserDataSource
|
|
|
693
696
|
builder.addFilter(
|
|
694
697
|
'firstTitle',
|
|
695
698
|
this.host.selectedTitleFilter,
|
|
696
|
-
FilterConstraint.INCLUDE
|
|
699
|
+
FilterConstraint.INCLUDE,
|
|
697
700
|
);
|
|
698
701
|
}
|
|
699
702
|
if (this.host.selectedCreatorFilter) {
|
|
700
703
|
builder.addFilter(
|
|
701
704
|
'firstCreator',
|
|
702
705
|
this.host.selectedCreatorFilter,
|
|
703
|
-
FilterConstraint.INCLUDE
|
|
706
|
+
FilterConstraint.INCLUDE,
|
|
704
707
|
);
|
|
705
708
|
}
|
|
706
709
|
|
|
@@ -788,7 +791,7 @@ export class CollectionBrowserDataSource
|
|
|
788
791
|
if (!this.host.selectedFacets) return undefined;
|
|
789
792
|
const facetClauses = [];
|
|
790
793
|
for (const [facetName, facetValues] of Object.entries(
|
|
791
|
-
this.host.selectedFacets
|
|
794
|
+
this.host.selectedFacets,
|
|
792
795
|
)) {
|
|
793
796
|
facetClauses.push(this.buildFacetClause(facetName, facetValues));
|
|
794
797
|
}
|
|
@@ -841,11 +844,11 @@ export class CollectionBrowserDataSource
|
|
|
841
844
|
*/
|
|
842
845
|
private buildFacetClause(
|
|
843
846
|
facetName: string,
|
|
844
|
-
facetValues: Record<string, FacetBucket
|
|
847
|
+
facetValues: Record<string, FacetBucket>,
|
|
845
848
|
): string {
|
|
846
849
|
const { name: facetQueryName, values } = this.prepareFacetForFetch(
|
|
847
850
|
facetName,
|
|
848
|
-
facetValues
|
|
851
|
+
facetValues,
|
|
849
852
|
);
|
|
850
853
|
const facetEntries = Object.entries(values);
|
|
851
854
|
if (facetEntries.length === 0) return '';
|
|
@@ -869,7 +872,7 @@ export class CollectionBrowserDataSource
|
|
|
869
872
|
*/
|
|
870
873
|
private prepareFacetForFetch(
|
|
871
874
|
facetName: string,
|
|
872
|
-
facetValues: Record<string, FacetBucket
|
|
875
|
+
facetValues: Record<string, FacetBucket>,
|
|
873
876
|
): { name: string; values: Record<string, FacetBucket> } {
|
|
874
877
|
// eslint-disable-next-line prefer-const
|
|
875
878
|
let [normalizedName, normalizedValues] = [facetName, facetValues];
|
|
@@ -891,7 +894,7 @@ export class CollectionBrowserDataSource
|
|
|
891
894
|
*/
|
|
892
895
|
private joinFacetClauses(facetClauses: string[]): string | undefined {
|
|
893
896
|
const nonEmptyFacetClauses = facetClauses.filter(
|
|
894
|
-
clause => clause.length > 0
|
|
897
|
+
clause => clause.length > 0,
|
|
895
898
|
);
|
|
896
899
|
return nonEmptyFacetClauses.length > 0
|
|
897
900
|
? `(${nonEmptyFacetClauses.join(' AND ')})`
|
|
@@ -925,12 +928,12 @@ export class CollectionBrowserDataSource
|
|
|
925
928
|
};
|
|
926
929
|
params.uid = await this.requestUID(
|
|
927
930
|
{ ...params, sort: sortParams },
|
|
928
|
-
'aggregations'
|
|
931
|
+
'aggregations',
|
|
929
932
|
);
|
|
930
933
|
|
|
931
934
|
const searchResponse = await this.host.searchService?.search(
|
|
932
935
|
params,
|
|
933
|
-
this.host.searchType
|
|
936
|
+
this.host.searchType,
|
|
934
937
|
);
|
|
935
938
|
const success = searchResponse?.success;
|
|
936
939
|
|
|
@@ -947,10 +950,10 @@ export class CollectionBrowserDataSource
|
|
|
947
950
|
const detailMsg = searchResponse?.error?.details?.message;
|
|
948
951
|
|
|
949
952
|
if (!errorMsg && !detailMsg) {
|
|
950
|
-
// @ts-
|
|
953
|
+
// @ts-expect-error: Property 'Sentry' does not exist on type 'Window & typeof globalThis'
|
|
951
954
|
window?.Sentry?.captureMessage?.(
|
|
952
955
|
'Missing or malformed facet response from backend',
|
|
953
|
-
'error'
|
|
956
|
+
'error',
|
|
954
957
|
);
|
|
955
958
|
}
|
|
956
959
|
|
|
@@ -1045,7 +1048,7 @@ export class CollectionBrowserDataSource
|
|
|
1045
1048
|
// log('=== FIRING PAGE REQUEST ===', params);
|
|
1046
1049
|
const searchResponse = await this.host.searchService?.search(
|
|
1047
1050
|
params,
|
|
1048
|
-
this.host.searchType
|
|
1051
|
+
this.host.searchType,
|
|
1049
1052
|
);
|
|
1050
1053
|
// log('=== RECEIVED PAGE RESPONSE IN CB ===', searchResponse);
|
|
1051
1054
|
const success = searchResponse?.success;
|
|
@@ -1067,7 +1070,7 @@ export class CollectionBrowserDataSource
|
|
|
1067
1070
|
|
|
1068
1071
|
if (!this.queryErrorMessage) {
|
|
1069
1072
|
this.queryErrorMessage = 'Missing or malformed response from backend';
|
|
1070
|
-
// @ts-
|
|
1073
|
+
// @ts-expect-error: Property 'Sentry' does not exist on type 'Window & typeof globalThis'
|
|
1071
1074
|
window?.Sentry?.captureMessage?.(this.queryErrorMessage, 'error');
|
|
1072
1075
|
}
|
|
1073
1076
|
|
|
@@ -1094,7 +1097,7 @@ export class CollectionBrowserDataSource
|
|
|
1094
1097
|
|
|
1095
1098
|
if (this.collectionExtraInfo) {
|
|
1096
1099
|
this.parentCollections = [].concat(
|
|
1097
|
-
this.collectionExtraInfo.public_metadata?.collection ?? []
|
|
1100
|
+
this.collectionExtraInfo.public_metadata?.collection ?? [],
|
|
1098
1101
|
);
|
|
1099
1102
|
}
|
|
1100
1103
|
} else if (this.host.withinProfile) {
|
|
@@ -1115,7 +1118,7 @@ export class CollectionBrowserDataSource
|
|
|
1115
1118
|
// Update the data source for each returned page.
|
|
1116
1119
|
// For loans and web archives, we must account for receiving more pages than we asked for.
|
|
1117
1120
|
const isUnpagedElement = ['lending', 'web_archives'].includes(
|
|
1118
|
-
this.host.profileElement
|
|
1121
|
+
this.host.profileElement!,
|
|
1119
1122
|
);
|
|
1120
1123
|
if (isUnpagedElement) {
|
|
1121
1124
|
numPages = Math.ceil(results.length / this.pageSize);
|
|
@@ -1128,7 +1131,7 @@ export class CollectionBrowserDataSource
|
|
|
1128
1131
|
this.addFetchedResultsToDataSource(
|
|
1129
1132
|
pageNumber + i,
|
|
1130
1133
|
results.slice(pageStartIndex, pageStartIndex + this.pageSize),
|
|
1131
|
-
!isUnpagedElement || i === numPages - 1
|
|
1134
|
+
!isUnpagedElement || i === numPages - 1,
|
|
1132
1135
|
);
|
|
1133
1136
|
}
|
|
1134
1137
|
}
|
|
@@ -1154,7 +1157,7 @@ export class CollectionBrowserDataSource
|
|
|
1154
1157
|
private addFetchedResultsToDataSource(
|
|
1155
1158
|
pageNumber: number,
|
|
1156
1159
|
results: SearchResult[],
|
|
1157
|
-
needsReload = true
|
|
1160
|
+
needsReload = true,
|
|
1158
1161
|
): void {
|
|
1159
1162
|
const tiles: TileModel[] = [];
|
|
1160
1163
|
results?.forEach(result => {
|
|
@@ -1173,7 +1176,7 @@ export class CollectionBrowserDataSource
|
|
|
1173
1176
|
* Fetches the aggregation buckets for the given prefix filter type.
|
|
1174
1177
|
*/
|
|
1175
1178
|
private async fetchPrefixFilterBuckets(
|
|
1176
|
-
filterType: PrefixFilterType
|
|
1179
|
+
filterType: PrefixFilterType,
|
|
1177
1180
|
): Promise<Bucket[]> {
|
|
1178
1181
|
const trimmedQuery = this.host.baseQuery?.trim();
|
|
1179
1182
|
if (!this.canPerformSearch) return [];
|
|
@@ -1193,12 +1196,12 @@ export class CollectionBrowserDataSource
|
|
|
1193
1196
|
};
|
|
1194
1197
|
params.uid = await this.requestUID(
|
|
1195
1198
|
{ ...params, sort: sortParams },
|
|
1196
|
-
'aggregations'
|
|
1199
|
+
'aggregations',
|
|
1197
1200
|
);
|
|
1198
1201
|
|
|
1199
1202
|
const searchResponse = await this.host.searchService?.search(
|
|
1200
1203
|
params,
|
|
1201
|
-
this.host.searchType
|
|
1204
|
+
this.host.searchType,
|
|
1202
1205
|
);
|
|
1203
1206
|
|
|
1204
1207
|
return (searchResponse?.success?.response?.aggregations?.[
|
|
@@ -1226,7 +1229,7 @@ export class CollectionBrowserDataSource
|
|
|
1226
1229
|
acc[(bucket.key as string).toUpperCase()] = bucket.doc_count;
|
|
1227
1230
|
return acc;
|
|
1228
1231
|
},
|
|
1229
|
-
{}
|
|
1232
|
+
{},
|
|
1230
1233
|
);
|
|
1231
1234
|
|
|
1232
1235
|
this.requestHostUpdate();
|
package/src/empty-placeholder.ts
CHANGED
|
@@ -23,35 +23,38 @@ export type PlaceholderType =
|
|
|
23
23
|
@customElement('empty-placeholder')
|
|
24
24
|
export class EmptyPlaceholder extends LitElement {
|
|
25
25
|
private static readonly MESSAGE_EMPTY_QUERY = msg(
|
|
26
|
-
'To begin searching, enter a search term in the box above and hit "Go".'
|
|
26
|
+
'To begin searching, enter a search term in the box above and hit "Go".',
|
|
27
27
|
);
|
|
28
28
|
|
|
29
29
|
private static readonly MESSAGE_NO_SEARCH_RESULTS = msg(
|
|
30
30
|
'Your search did not match any items in the Archive. ' +
|
|
31
|
-
'Try different keywords or a more general search.'
|
|
31
|
+
'Try different keywords or a more general search.',
|
|
32
32
|
);
|
|
33
33
|
|
|
34
34
|
private static readonly MESSAGE_NO_COLLECTION_RESULTS = msg(
|
|
35
35
|
'Your search did not match any items in this collection. ' +
|
|
36
|
-
'Try different keywords or a more general search.'
|
|
36
|
+
'Try different keywords or a more general search.',
|
|
37
37
|
);
|
|
38
38
|
|
|
39
39
|
private static readonly MESSAGE_NO_VIEWABLE_MEMBERS = msg(
|
|
40
|
-
'This collection contains no viewable items.'
|
|
40
|
+
'This collection contains no viewable items.',
|
|
41
41
|
);
|
|
42
42
|
|
|
43
|
-
private static readonly MESSAGE_QUERY_ERROR = msg(
|
|
44
|
-
encountered an error, which might be related to your
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
private static readonly MESSAGE_QUERY_ERROR = msg(
|
|
44
|
+
html`The search engine encountered an error, which might be related to your
|
|
45
|
+
search query.
|
|
46
|
+
<a
|
|
47
|
+
href="https://help.archive.org/help/search-building-powerful-complex-queries/"
|
|
48
|
+
>
|
|
49
|
+
Tips for constructing search queries.
|
|
50
|
+
</a> `,
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
private static readonly MESSAGE_COLLECTION_ERROR = msg(
|
|
54
|
+
html`The search engine encountered an error while loading this collection.
|
|
55
|
+
If the problem persists, please let us know at
|
|
56
|
+
<a href="mailto:info@archive.org">info@archive.org</a>.`,
|
|
57
|
+
);
|
|
55
58
|
|
|
56
59
|
private static readonly QUERY_ERROR_DETAILS_MESSAGE = msg('Error details:');
|
|
57
60
|
|
|
@@ -50,7 +50,7 @@ export class LanguageCodeHandler implements LanguageCodeHandlerInterface {
|
|
|
50
50
|
/** @inheritdoc */
|
|
51
51
|
getCodeStringFromLanguageName(languageName: string): string {
|
|
52
52
|
const languageCodes = Object.keys(codeToLanguageMap).filter(
|
|
53
|
-
code => codeToLanguageMap[code] === languageName
|
|
53
|
+
code => codeToLanguageMap[code] === languageName,
|
|
54
54
|
);
|
|
55
55
|
const stringifiedCodes = languageCodes?.join(this.delimeter);
|
|
56
56
|
return stringifiedCodes;
|
package/src/manage/manage-bar.ts
CHANGED
|
@@ -66,21 +66,23 @@ export class ManageBar extends LitElement {
|
|
|
66
66
|
<div class="selection-buttons">
|
|
67
67
|
${when(
|
|
68
68
|
this.showSelectAll,
|
|
69
|
-
() =>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
() =>
|
|
70
|
+
html` <button
|
|
71
|
+
class="ia-button link select-all-btn"
|
|
72
|
+
@click=${this.selectAllClicked}
|
|
73
|
+
>
|
|
74
|
+
${msg('Select all')}
|
|
75
|
+
</button>`,
|
|
75
76
|
)}
|
|
76
77
|
${when(
|
|
77
78
|
this.showUnselectAll,
|
|
78
|
-
() =>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
() =>
|
|
80
|
+
html` <button
|
|
81
|
+
class="ia-button link unselect-all-btn"
|
|
82
|
+
@click=${this.unselectAllClicked}
|
|
83
|
+
>
|
|
84
|
+
${msg('Unselect all')}
|
|
85
|
+
</button>`,
|
|
84
86
|
)}
|
|
85
87
|
</div>
|
|
86
88
|
</div>
|
|
@@ -13,6 +13,7 @@ import { videoIcon } from '../assets/img/icons/mediatype/video';
|
|
|
13
13
|
import { webIcon } from '../assets/img/icons/mediatype/web';
|
|
14
14
|
import { searchIcon } from '../assets/img/icons/mediatype/search';
|
|
15
15
|
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
17
|
export const mediatypeConfig: { [key: string]: any } = {
|
|
17
18
|
account: {
|
|
18
19
|
color: '#000000',
|
package/src/models.ts
CHANGED
|
@@ -125,7 +125,7 @@ export class TileModel {
|
|
|
125
125
|
this.description = result.description?.values.join('\n');
|
|
126
126
|
this.favCount = result.num_favorites?.value ?? 0;
|
|
127
127
|
this.href = collapseRepeatedQuotes(
|
|
128
|
-
result.review?.__href__ ?? result.__href__?.value
|
|
128
|
+
result.review?.__href__ ?? result.__href__?.value,
|
|
129
129
|
);
|
|
130
130
|
this.identifier = TileModel.cleanIdentifier(result.identifier);
|
|
131
131
|
this.issue = result.issue?.value;
|
|
@@ -212,7 +212,7 @@ export class TileModel {
|
|
|
212
212
|
}
|
|
213
213
|
|
|
214
214
|
private static cleanIdentifier(
|
|
215
|
-
identifier: string | undefined
|
|
215
|
+
identifier: string | undefined,
|
|
216
216
|
): string | undefined {
|
|
217
217
|
// Some identifiers (e.g., from Whisper) represent documents rather than items, and
|
|
218
218
|
// are suffixed with values that need to be stripped. Those values are separated
|
|
@@ -463,7 +463,7 @@ export const SORT_OPTIONS: Record<SortField, SortOption> = {
|
|
|
463
463
|
export function sortOptionFromAPIString(sortName?: string | null): SortOption {
|
|
464
464
|
return (
|
|
465
465
|
Object.values(SORT_OPTIONS).find(opt =>
|
|
466
|
-
opt.urlNames.some(name => sortName === name)
|
|
466
|
+
opt.urlNames.some(name => sortName === name),
|
|
467
467
|
) ?? SORT_OPTIONS[SortField.unrecognized]
|
|
468
468
|
);
|
|
469
469
|
}
|