@internetarchive/collection-browser 2.7.14-alpha-webdev7002.4 → 2.7.14-alpha-webdev7397.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/.github/workflows/gh-pages-main.yml +2 -2
- package/.github/workflows/pr-preview.yml +2 -2
- package/.prettierignore +1 -0
- package/dist/index.d.ts +13 -16
- package/dist/index.js +11 -16
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +107 -107
- package/dist/src/app-root.js +531 -531
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-left.js +2 -2
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-right.js +2 -2
- package/dist/src/assets/img/icons/chevron.d.ts +2 -2
- package/dist/src/assets/img/icons/chevron.js +2 -2
- package/dist/src/assets/img/icons/contract.d.ts +2 -2
- package/dist/src/assets/img/icons/contract.js +2 -2
- package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.js +2 -2
- package/dist/src/assets/img/icons/expand.d.ts +2 -2
- package/dist/src/assets/img/icons/expand.js +2 -2
- package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
- package/dist/src/assets/img/icons/eye-closed.js +2 -2
- package/dist/src/assets/img/icons/eye.d.ts +2 -2
- package/dist/src/assets/img/icons/eye.js +2 -2
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.js +2 -2
- package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
- package/dist/src/assets/img/icons/filter.d.ts +2 -2
- package/dist/src/assets/img/icons/filter.js +2 -2
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.js +2 -2
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.js +2 -2
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.js +2 -2
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.js +2 -2
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.js +2 -2
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/search.js +2 -2
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.js +2 -2
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.js +2 -2
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.js +2 -2
- package/dist/src/assets/img/icons/null-result.d.ts +2 -2
- package/dist/src/assets/img/icons/null-result.js +2 -2
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.js +2 -2
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.js +2 -2
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.js +2 -2
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/assets/img/icons/views.js +2 -2
- package/dist/src/circular-activity-indicator.d.ts +5 -5
- package/dist/src/circular-activity-indicator.js +17 -17
- package/dist/src/circular-activity-indicator.js.map +1 -1
- package/dist/src/collection-browser.d.ts +606 -606
- package/dist/src/collection-browser.js +1684 -1677
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row.d.ts +30 -30
- package/dist/src/collection-facets/facet-row.js +118 -118
- package/dist/src/collection-facets/facet-row.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
- package/dist/src/collection-facets/facets-template.d.ts +13 -13
- package/dist/src/collection-facets/facets-template.js +49 -49
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
- package/dist/src/collection-facets/more-facets-content.js +406 -408
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +197 -196
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
- package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
- package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.d.ts → browser-language-heuristic.d.ts} +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/{browser-language/browser-language-heuristic.js → browser-language-heuristic.js} +23 -23
- package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js.map +1 -0
- package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-heuristic.d.ts → query-keywords-heuristic.d.ts} +5 -4
- package/dist/src/collection-facets/smart-facets/heuristics/{query-keywords/query-keywords-map.js → query-keywords-heuristic.js} +45 -35
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -0
- package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-heuristic.d.ts → wikidata-heuristic.d.ts} +5 -4
- package/dist/src/collection-facets/smart-facets/heuristics/{wikidata/wikidata-entity-map.js → wikidata-heuristic.js} +173 -133
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -0
- package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
- package/dist/src/collection-facets/smart-facets/models.js +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
- 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 +11 -11
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
- 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 +16 -16
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
- package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -17
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
- package/dist/src/collection-facets/toggle-switch.js +94 -94
- package/dist/src/collection-facets/toggle-switch.js.map +1 -1
- package/dist/src/collection-facets.d.ts +103 -103
- package/dist/src/collection-facets.js +521 -522
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
- package/dist/src/data-source/collection-browser-data-source-interface.js +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.d.ts +377 -377
- package/dist/src/data-source/collection-browser-data-source.js +1003 -1004
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
- package/dist/src/data-source/collection-browser-query-state.js +1 -1
- package/dist/src/data-source/models.d.ts +28 -28
- package/dist/src/data-source/models.js +8 -8
- package/dist/src/empty-placeholder.d.ts +23 -23
- package/dist/src/empty-placeholder.js +87 -88
- package/dist/src/empty-placeholder.js.map +1 -1
- package/dist/src/expanded-date-picker.d.ts +43 -43
- package/dist/src/expanded-date-picker.js +109 -109
- package/dist/src/expanded-date-picker.js.map +1 -1
- package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
- package/dist/src/language-code-handler/language-code-handler.js +26 -26
- package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
- package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
- package/dist/src/manage/manage-bar.d.ts +58 -58
- package/dist/src/manage/manage-bar.js +175 -175
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
- package/dist/src/manage/remove-items-modal-content.js +34 -34
- package/dist/src/manage/remove-items-modal-content.js.map +1 -1
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +92 -91
- package/dist/src/mediatype/mediatype-config.js.map +1 -1
- package/dist/src/models.d.ts +228 -228
- package/dist/src/models.js +401 -401
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +70 -70
- package/dist/src/restoration-state-handler.js +362 -363
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
- package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
- 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/compact.js +2 -2
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.js +2 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
- package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/styles/ia-button.d.ts +2 -2
- package/dist/src/styles/ia-button.js +17 -17
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/styles/sr-only.d.ts +1 -1
- package/dist/src/styles/sr-only.js +2 -2
- package/dist/src/tiles/base-tile-component.d.ts +19 -19
- package/dist/src/tiles/base-tile-component.js +64 -64
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.d.ts +18 -18
- package/dist/src/tiles/grid/account-tile.js +72 -72
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
- package/dist/src/tiles/grid/collection-tile.js +80 -80
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.d.ts +34 -34
- package/dist/src/tiles/grid/item-tile.js +159 -160
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/search-tile.d.ts +10 -10
- package/dist/src/tiles/grid/search-tile.js +51 -51
- package/dist/src/tiles/grid/search-tile.js.map +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
- package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
- package/dist/src/tiles/grid/tile-stats.js +54 -54
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
- package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
- package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
- package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
- package/dist/src/tiles/image-block.d.ts +18 -18
- package/dist/src/tiles/image-block.js +89 -89
- package/dist/src/tiles/image-block.js.map +1 -1
- package/dist/src/tiles/item-image.d.ts +39 -39
- package/dist/src/tiles/item-image.js +154 -154
- package/dist/src/tiles/item-image.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
- package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
- package/dist/src/tiles/list/tile-list-compact.js +122 -122
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.d.ts +54 -54
- package/dist/src/tiles/list/tile-list.js +324 -326
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- package/dist/src/tiles/mediatype-icon.js.map +1 -1
- package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
- package/dist/src/tiles/overlay/icon-overlay.js +25 -25
- package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
- package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
- package/dist/src/tiles/review-block.d.ts +12 -12
- package/dist/src/tiles/review-block.js +56 -56
- package/dist/src/tiles/review-block.js.map +1 -1
- package/dist/src/tiles/text-snippet-block.d.ts +27 -27
- package/dist/src/tiles/text-snippet-block.js +73 -73
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
- package/dist/src/tiles/tile-dispatcher.js +230 -230
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
- package/dist/src/tiles/tile-display-value-provider.js +94 -94
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/src/utils/analytics-events.d.ts +28 -28
- package/dist/src/utils/analytics-events.js +30 -30
- package/dist/src/utils/array-equals.d.ts +4 -4
- package/dist/src/utils/array-equals.js +10 -10
- package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
- package/dist/src/utils/collapse-repeated-quotes.js +13 -13
- package/dist/src/utils/facet-utils.d.ts +83 -83
- package/dist/src/utils/facet-utils.js +145 -145
- package/dist/src/utils/facet-utils.js.map +1 -1
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +75 -76
- package/dist/src/utils/format-count.js.map +1 -1
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +27 -27
- package/dist/src/utils/format-date.js.map +1 -1
- package/dist/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/src/utils/format-unit-size.js.map +1 -1
- package/dist/src/utils/local-date-from-utc.d.ts +9 -9
- package/dist/src/utils/local-date-from-utc.js +15 -15
- package/dist/src/utils/log.d.ts +7 -7
- package/dist/src/utils/log.js +13 -15
- package/dist/src/utils/log.js.map +1 -1
- package/dist/src/utils/resolve-mediatype.d.ts +8 -8
- package/dist/src/utils/resolve-mediatype.js +23 -23
- package/dist/src/utils/resolve-mediatype.js.map +1 -1
- package/dist/src/utils/sha1.d.ts +2 -2
- package/dist/src/utils/sha1.js +8 -8
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +1309 -1308
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
- package/dist/test/collection-facets/facet-row.test.js +230 -227
- package/dist/test/collection-facets/facet-row.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +91 -91
- package/dist/test/collection-facets/facets-template.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +140 -141
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
- package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
- package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +82 -73
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +692 -692
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
- package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
- package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +62 -63
- package/dist/test/empty-placeholder.test.js.map +1 -1
- package/dist/test/expanded-date-picker.test.d.ts +1 -1
- package/dist/test/expanded-date-picker.test.js +97 -96
- package/dist/test/expanded-date-picker.test.js.map +1 -1
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +23 -24
- package/dist/test/icon-overlay.test.js.map +1 -1
- package/dist/test/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +106 -107
- package/dist/test/image-block.test.js.map +1 -1
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +84 -85
- package/dist/test/item-image.test.js.map +1 -1
- package/dist/test/manage/manage-bar.test.d.ts +2 -2
- package/dist/test/manage/manage-bar.test.js +100 -101
- package/dist/test/manage/manage-bar.test.js.map +1 -1
- package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
- package/dist/test/manage/remove-items-modal-content.test.js +44 -45
- package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
- package/dist/test/mediatype-config.test.d.ts +1 -1
- package/dist/test/mediatype-config.test.js +16 -16
- package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
- package/dist/test/mocks/mock-analytics-handler.js +15 -15
- package/dist/test/mocks/mock-search-responses.d.ts +25 -25
- package/dist/test/mocks/mock-search-responses.js +942 -942
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/mocks/mock-search-service.d.ts +15 -15
- package/dist/test/mocks/mock-search-service.js +54 -54
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +270 -270
- package/dist/test/restoration-state-handler.test.js.map +1 -1
- package/dist/test/review-block.test.d.ts +1 -1
- package/dist/test/review-block.test.js +43 -44
- package/dist/test/review-block.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
- package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +37 -38
- package/dist/test/text-overlay.test.js.map +1 -1
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +56 -57
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +98 -99
- package/dist/test/tile-stats.test.js.map +1 -1
- package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +75 -76
- package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +72 -73
- package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +311 -312
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +50 -51
- package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
- package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
- package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +296 -297
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +100 -100
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
- package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
- package/dist/test/utils/array-equals.test.d.ts +1 -1
- package/dist/test/utils/array-equals.test.js +26 -26
- package/dist/test/utils/format-count.test.d.ts +1 -1
- package/dist/test/utils/format-count.test.js +23 -23
- package/dist/test/utils/format-count.test.js.map +1 -1
- package/dist/test/utils/format-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +30 -30
- package/dist/test/utils/format-date.test.js.map +1 -1
- package/dist/test/utils/format-unit-size.test.d.ts +1 -1
- package/dist/test/utils/format-unit-size.test.js +17 -17
- package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
- package/dist/test/utils/local-date-from-utc.test.js +26 -26
- 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/index.ts +1 -15
- package/package.json +41 -39
- package/src/app-root.ts +21 -22
- package/src/collection-browser.ts +50 -42
- 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/{browser-language/browser-language-heuristic.ts → browser-language-heuristic.ts} +1 -1
- package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +55 -0
- package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +191 -0
- 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 +8 -13
- 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 +23 -20
- package/src/manage/remove-items-modal-content.ts +2 -2
- 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 +1 -1
- package/src/utils/format-unit-size.ts +1 -1
- package/src/utils/log.ts +1 -3
- package/test/collection-browser.test.ts +125 -124
- 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 +46 -39
- 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 +25 -20
- 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 +19 -16
- package/test/manage/remove-items-modal-content.test.ts +4 -5
- 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 +1 -1
- package/test/utils/local-date-from-utc.test.ts +1 -1
- package/tsconfig.json +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.js.map +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/index.d.ts +0 -3
- package/dist/src/collection-facets/smart-facets/heuristics/index.js +0 -4
- package/dist/src/collection-facets/smart-facets/heuristics/index.js.map +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js +0 -14
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.js.map +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.d.ts +0 -6
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.js.map +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.d.ts +0 -9
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.js.map +0 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +0 -49
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +0 -1
- package/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
- package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
- package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -36
- package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -134
- package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -60
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
SmartQueryHeuristic,
|
|
3
|
+
KeywordFacetMap,
|
|
4
|
+
SmartFacet,
|
|
5
|
+
} from '../models';
|
|
6
|
+
|
|
7
|
+
// If wikidata describes the top query result as X, recommend facet Y, e.g.:
|
|
8
|
+
// X Y
|
|
9
|
+
// written work mt:texts
|
|
10
|
+
// film mt:movies
|
|
11
|
+
// author mt:texts and creator:<query>
|
|
12
|
+
// filmmaker mt:movies and creator:<query>
|
|
13
|
+
// photographer mt:image and creator:<query>
|
|
14
|
+
// visual artist mt:image and creator:<query>
|
|
15
|
+
// etc.
|
|
16
|
+
export class WikidataHeuristic implements SmartQueryHeuristic {
|
|
17
|
+
private static readonly ENTITIES: KeywordFacetMap = {
|
|
18
|
+
'written work': [
|
|
19
|
+
{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] },
|
|
20
|
+
],
|
|
21
|
+
literature: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
|
|
22
|
+
book: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
|
|
23
|
+
novel: [{ facets: [{ facetType: 'mediatype', bucketKey: 'texts' }] }],
|
|
24
|
+
filmmaker: [
|
|
25
|
+
{
|
|
26
|
+
label: 'Films by __QUERY',
|
|
27
|
+
facets: [
|
|
28
|
+
{ facetType: 'mediatype', bucketKey: 'movies' },
|
|
29
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
author: [
|
|
34
|
+
{
|
|
35
|
+
label: 'Writing by __QUERY',
|
|
36
|
+
facets: [
|
|
37
|
+
{ facetType: 'mediatype', bucketKey: 'texts' },
|
|
38
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
writer: [
|
|
43
|
+
{
|
|
44
|
+
label: 'Writing by __QUERY',
|
|
45
|
+
facets: [
|
|
46
|
+
{ facetType: 'mediatype', bucketKey: 'texts' },
|
|
47
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
poet: [
|
|
52
|
+
{
|
|
53
|
+
label: 'Writing by __QUERY',
|
|
54
|
+
facets: [
|
|
55
|
+
{ facetType: 'mediatype', bucketKey: 'texts' },
|
|
56
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
photographer: [
|
|
61
|
+
{
|
|
62
|
+
label: 'Images by __QUERY',
|
|
63
|
+
facets: [
|
|
64
|
+
{ facetType: 'mediatype', bucketKey: 'image' },
|
|
65
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
painter: [
|
|
70
|
+
{
|
|
71
|
+
label: 'Images by __QUERY',
|
|
72
|
+
facets: [
|
|
73
|
+
{ facetType: 'mediatype', bucketKey: 'image' },
|
|
74
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
'visual artist': [
|
|
79
|
+
{
|
|
80
|
+
label: 'Images by __QUERY',
|
|
81
|
+
facets: [
|
|
82
|
+
{ facetType: 'mediatype', bucketKey: 'image' },
|
|
83
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
'graphic artist': [
|
|
88
|
+
{
|
|
89
|
+
label: 'Images by __QUERY',
|
|
90
|
+
facets: [
|
|
91
|
+
{ facetType: 'mediatype', bucketKey: 'image' },
|
|
92
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
singer: [
|
|
97
|
+
{
|
|
98
|
+
label: 'Music by __QUERY',
|
|
99
|
+
facets: [
|
|
100
|
+
{ facetType: 'mediatype', bucketKey: 'audio' },
|
|
101
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
songwriter: [
|
|
106
|
+
{
|
|
107
|
+
label: 'Music by __QUERY',
|
|
108
|
+
facets: [
|
|
109
|
+
{ facetType: 'mediatype', bucketKey: 'audio' },
|
|
110
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
musician: [
|
|
115
|
+
{
|
|
116
|
+
label: 'Music by __QUERY',
|
|
117
|
+
facets: [
|
|
118
|
+
{ facetType: 'mediatype', bucketKey: 'audio' },
|
|
119
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
composer: [
|
|
124
|
+
{
|
|
125
|
+
label: 'Music by __QUERY',
|
|
126
|
+
facets: [
|
|
127
|
+
{ facetType: 'mediatype', bucketKey: 'audio' },
|
|
128
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
pianist: [
|
|
133
|
+
{
|
|
134
|
+
label: 'Music by __QUERY',
|
|
135
|
+
facets: [
|
|
136
|
+
{ facetType: 'mediatype', bucketKey: 'audio' },
|
|
137
|
+
{ facetType: 'creator', bucketKey: '__QUERY' },
|
|
138
|
+
],
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
async getRecommendedFacets(query: string): Promise<SmartFacet[]> {
|
|
144
|
+
const recommendations: SmartFacet[] = [];
|
|
145
|
+
|
|
146
|
+
try {
|
|
147
|
+
const urlQuery = encodeURIComponent(query);
|
|
148
|
+
|
|
149
|
+
const wikidataResponse = await fetch(
|
|
150
|
+
`https://www.wikidata.org/w/api.php?action=wbsearchentities&search=${urlQuery}&format=json&language=en&uselang=en&origin=*&type=item&limit=5`,
|
|
151
|
+
);
|
|
152
|
+
const searchResults = await wikidataResponse.json();
|
|
153
|
+
|
|
154
|
+
for (const [keyword, facets] of Object.entries(
|
|
155
|
+
WikidataHeuristic.ENTITIES,
|
|
156
|
+
)) {
|
|
157
|
+
const keywordRegex = new RegExp(`\\b${keyword}\\b`);
|
|
158
|
+
if (keywordRegex.test(searchResults.search[0]?.description)) {
|
|
159
|
+
const entityName = searchResults.search[0].label;
|
|
160
|
+
recommendations.push(
|
|
161
|
+
...facets.map(
|
|
162
|
+
sf =>
|
|
163
|
+
({
|
|
164
|
+
label: sf.label?.replace('__QUERY', entityName),
|
|
165
|
+
facets: sf.facets.map(f => {
|
|
166
|
+
const replaced = {
|
|
167
|
+
...f,
|
|
168
|
+
bucketKey: f.bucketKey.replace('__QUERY', query),
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
if (f.displayText) {
|
|
172
|
+
replaced.displayText = replaced.displayText?.replace(
|
|
173
|
+
'__QUERY',
|
|
174
|
+
entityName,
|
|
175
|
+
);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return replaced;
|
|
179
|
+
}),
|
|
180
|
+
}) as SmartFacet,
|
|
181
|
+
),
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return recommendations;
|
|
187
|
+
} catch {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* eslint-disable no-continue */
|
|
2
|
-
|
|
3
1
|
import {
|
|
4
2
|
css,
|
|
5
3
|
html,
|
|
@@ -68,7 +66,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
68
66
|
this.smartFacets,
|
|
69
67
|
f =>
|
|
70
68
|
`${f[0].label}|${f[0].facets[0].facetType}|${f[0].facets[0].bucketKey}`,
|
|
71
|
-
facet => this.makeSmartFacet(facet)
|
|
69
|
+
facet => this.makeSmartFacet(facet),
|
|
72
70
|
)}
|
|
73
71
|
</div>
|
|
74
72
|
`;
|
|
@@ -190,7 +188,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
190
188
|
key === 'mediatype' &&
|
|
191
189
|
this.selectedFacets &&
|
|
192
190
|
Object.values(this.selectedFacets.mediatype).some(
|
|
193
|
-
bucket => bucket.state !== 'none'
|
|
191
|
+
bucket => bucket.state !== 'none',
|
|
194
192
|
)
|
|
195
193
|
) {
|
|
196
194
|
continue;
|
|
@@ -210,7 +208,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
210
208
|
if (facetType === 'mediatype') {
|
|
211
209
|
facets.push(
|
|
212
210
|
[this.toSmartFacet(facetType, [unusedBuckets[0]])],
|
|
213
|
-
[this.toSmartFacet(facetType, [unusedBuckets[1]])]
|
|
211
|
+
[this.toSmartFacet(facetType, [unusedBuckets[1]])],
|
|
214
212
|
);
|
|
215
213
|
} else if (facetType === 'collection' || facetType === 'subject') {
|
|
216
214
|
const topBuckets = unusedBuckets.slice(0, 5);
|
|
@@ -226,7 +224,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
226
224
|
|
|
227
225
|
private toSmartFacet(
|
|
228
226
|
facetType: FacetOption,
|
|
229
|
-
buckets: Bucket[]
|
|
227
|
+
buckets: Bucket[],
|
|
230
228
|
// prefix = true
|
|
231
229
|
): SmartFacet {
|
|
232
230
|
return {
|
|
@@ -259,7 +257,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
259
257
|
this.selectedFacets,
|
|
260
258
|
facet.facetType,
|
|
261
259
|
facet.bucket,
|
|
262
|
-
true
|
|
260
|
+
true,
|
|
263
261
|
);
|
|
264
262
|
}
|
|
265
263
|
|
|
@@ -286,7 +284,7 @@ export class SmartFacetBar extends LitElement {
|
|
|
286
284
|
this.selectedFacets,
|
|
287
285
|
facet.facetType,
|
|
288
286
|
facet.bucket,
|
|
289
|
-
true
|
|
287
|
+
true,
|
|
290
288
|
);
|
|
291
289
|
}
|
|
292
290
|
|
|
@@ -28,7 +28,9 @@ export class SmartFacetButton extends LitElement {
|
|
|
28
28
|
|
|
29
29
|
const displayText = capitalize(
|
|
30
30
|
(this.labelPrefix ? `${this.labelPrefix} ` : '') +
|
|
31
|
-
(this.facetInfo.label ??
|
|
31
|
+
(this.facetInfo.label ??
|
|
32
|
+
firstFacet.displayText ??
|
|
33
|
+
firstFacet.bucketKey),
|
|
32
34
|
);
|
|
33
35
|
if (!displayText) return nothing;
|
|
34
36
|
|
|
@@ -61,7 +63,7 @@ export class SmartFacetButton extends LitElement {
|
|
|
61
63
|
for (const facet of this.facetInfo.facets) {
|
|
62
64
|
url.searchParams.append(
|
|
63
65
|
'and[]',
|
|
64
|
-
encodeURIComponent(`${facet.facetType}:"${facet.bucketKey}"`)
|
|
66
|
+
encodeURIComponent(`${facet.facetType}:"${facet.bucketKey}"`),
|
|
65
67
|
);
|
|
66
68
|
}
|
|
67
69
|
}
|
|
@@ -88,7 +90,7 @@ export class SmartFacetButton extends LitElement {
|
|
|
88
90
|
negative: false,
|
|
89
91
|
})),
|
|
90
92
|
},
|
|
91
|
-
})
|
|
93
|
+
}),
|
|
92
94
|
);
|
|
93
95
|
}
|
|
94
96
|
|
|
@@ -67,7 +67,7 @@ export class SmartFacetDropdown extends LitElement {
|
|
|
67
67
|
private get activeDropdownOption(): optionInterface | undefined {
|
|
68
68
|
if (!this.activeFacetRef) return undefined;
|
|
69
69
|
return this.dropdownOptions.find(
|
|
70
|
-
opt => opt.id === this.activeFacetRef?.bucketKey
|
|
70
|
+
opt => opt.id === this.activeFacetRef?.bucketKey,
|
|
71
71
|
);
|
|
72
72
|
}
|
|
73
73
|
|
|
@@ -77,7 +77,7 @@ export class SmartFacetDropdown extends LitElement {
|
|
|
77
77
|
let selectedSmartFacet;
|
|
78
78
|
for (const smartFacet of this.facetInfo) {
|
|
79
79
|
const selectedRef = smartFacet.facets.find(
|
|
80
|
-
b => b.bucketKey === e.detail.option.id
|
|
80
|
+
b => b.bucketKey === e.detail.option.id,
|
|
81
81
|
);
|
|
82
82
|
if (selectedRef) {
|
|
83
83
|
this.activeFacetRef = selectedRef;
|
|
@@ -103,14 +103,14 @@ export class SmartFacetDropdown extends LitElement {
|
|
|
103
103
|
},
|
|
104
104
|
],
|
|
105
105
|
},
|
|
106
|
-
})
|
|
106
|
+
}),
|
|
107
107
|
);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
private onDropdownClick(): void {
|
|
111
111
|
log('smart dropdown: onDropdownClick', this);
|
|
112
112
|
this.dispatchEvent(
|
|
113
|
-
new CustomEvent<SmartFacetDropdown>('dropdownClick', { detail: this })
|
|
113
|
+
new CustomEvent<SmartFacetDropdown>('dropdownClick', { detail: this }),
|
|
114
114
|
);
|
|
115
115
|
}
|
|
116
116
|
|
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
import { dedupe } from './dedupe';
|
|
2
|
-
import { BrowserLanguageHeuristic } from './heuristics/browser-language
|
|
3
|
-
import { QueryKeywordsHeuristic } from './heuristics/query-keywords
|
|
4
|
-
import { WikidataHeuristic } from './heuristics/wikidata
|
|
2
|
+
import { BrowserLanguageHeuristic } from './heuristics/browser-language-heuristic';
|
|
3
|
+
import { QueryKeywordsHeuristic } from './heuristics/query-keywords-heuristic';
|
|
4
|
+
import { WikidataHeuristic } from './heuristics/wikidata-heuristic';
|
|
5
5
|
import type { SmartFacet, SmartQueryHeuristic } from './models';
|
|
6
6
|
|
|
7
7
|
export class SmartQueryHeuristicGroup implements SmartQueryHeuristic {
|
|
8
|
-
|
|
9
|
-
// prettier-ignore
|
|
10
|
-
private static readonly DEFAULT_HEURISTICS: (new () => SmartQueryHeuristic)[] = [
|
|
8
|
+
private static readonly HEURISTICS = [
|
|
11
9
|
QueryKeywordsHeuristic,
|
|
12
10
|
WikidataHeuristic,
|
|
13
|
-
BrowserLanguageHeuristic
|
|
11
|
+
BrowserLanguageHeuristic,
|
|
14
12
|
];
|
|
15
13
|
|
|
16
|
-
async getRecommendedFacets(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
): Promise<SmartFacet[]> {
|
|
20
|
-
const promises = heuristics.map(HeuristicCtor =>
|
|
21
|
-
new HeuristicCtor().getRecommendedFacets(query)
|
|
14
|
+
async getRecommendedFacets(query: string): Promise<SmartFacet[]> {
|
|
15
|
+
const promises = SmartQueryHeuristicGroup.HEURISTICS.map(HeuristicCtor =>
|
|
16
|
+
new HeuristicCtor().getRecommendedFacets(query),
|
|
22
17
|
);
|
|
23
18
|
|
|
24
19
|
return dedupe((await Promise.all(promises)).flat());
|
|
@@ -84,8 +84,8 @@ export class ToggleSwitch extends LitElement {
|
|
|
84
84
|
*/
|
|
85
85
|
get selectedLabel(): string {
|
|
86
86
|
return this.side === 'left'
|
|
87
|
-
? this.leftLabel ?? this.leftValue
|
|
88
|
-
: this.rightLabel ?? this.rightValue;
|
|
87
|
+
? (this.leftLabel ?? this.leftValue)
|
|
88
|
+
: (this.rightLabel ?? this.rightValue);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
private handleClick(): void {
|
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', {
|
|
@@ -285,7 +285,11 @@ export interface CollectionBrowserDataSourceInterface
|
|
|
285
285
|
* @param callback A callback function to apply on each tile model, as with Array.map
|
|
286
286
|
*/
|
|
287
287
|
map(
|
|
288
|
-
callback: (
|
|
288
|
+
callback: (
|
|
289
|
+
model: TileModel,
|
|
290
|
+
index: number,
|
|
291
|
+
array: TileModel[],
|
|
292
|
+
) => TileModel,
|
|
289
293
|
): void;
|
|
290
294
|
|
|
291
295
|
/**
|