@internetarchive/collection-browser 2.7.12 → 2.7.13-alpha1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +29 -29
- package/.github/workflows/ci.yml +3 -3
- package/.github/workflows/gh-pages-main.yml +2 -2
- package/.github/workflows/pr-preview.yml +2 -2
- package/.husky/pre-commit +4 -4
- package/.prettierignore +1 -0
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +13 -13
- package/dist/index.js +11 -13
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +108 -107
- package/dist/src/app-root.js +541 -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 +611 -606
- package/dist/src/collection-browser.js +1688 -1679
- 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-heuristic.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
- 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.d.ts +5 -5
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
- 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 -15
- 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 -1001
- 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/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +41 -39
- package/renovate.json +6 -6
- package/src/app-root.ts +33 -24
- package/src/collection-browser.ts +62 -53
- 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 +42 -35
- 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 +135 -134
- 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/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable import/no-duplicates */
|
|
2
1
|
import {
|
|
3
2
|
html,
|
|
4
3
|
css,
|
|
@@ -220,11 +219,10 @@ export class CollectionBrowser
|
|
|
220
219
|
@property({ type: String }) pageContext: CollectionBrowserContext = 'search';
|
|
221
220
|
|
|
222
221
|
@property({ type: Object })
|
|
223
|
-
restorationStateHandler: RestorationStateHandlerInterface =
|
|
224
|
-
{
|
|
222
|
+
restorationStateHandler: RestorationStateHandlerInterface =
|
|
223
|
+
new RestorationStateHandler({
|
|
225
224
|
context: this.pageContext,
|
|
226
|
-
}
|
|
227
|
-
);
|
|
225
|
+
});
|
|
228
226
|
|
|
229
227
|
@property({ type: Number }) mobileBreakpoint = 600;
|
|
230
228
|
|
|
@@ -242,7 +240,12 @@ export class CollectionBrowser
|
|
|
242
240
|
/**
|
|
243
241
|
* If item management UI active
|
|
244
242
|
*/
|
|
245
|
-
|
|
243
|
+
/**
|
|
244
|
+
* The current mode for item management UI:
|
|
245
|
+
* - 'initial': Initial mode activated through &manage=1 parameter
|
|
246
|
+
* - 'manual': Manual mode activated through user interaction eg. Manage|Remove items button
|
|
247
|
+
*/
|
|
248
|
+
@property({ type: String }) manageViewMode: 'initial' | 'manual' | '' = '';
|
|
246
249
|
|
|
247
250
|
@property({ type: String }) manageViewLabel = 'Select items to remove';
|
|
248
251
|
|
|
@@ -394,7 +397,7 @@ export class CollectionBrowser
|
|
|
394
397
|
|
|
395
398
|
sessionStorage?.setItem('cb-session', newSessionId);
|
|
396
399
|
return newSessionId;
|
|
397
|
-
} catch
|
|
400
|
+
} catch {
|
|
398
401
|
// Either we can't generate the hash or we're restricted from accessing sessionStorage
|
|
399
402
|
return '';
|
|
400
403
|
}
|
|
@@ -554,7 +557,7 @@ export class CollectionBrowser
|
|
|
554
557
|
|
|
555
558
|
if (!hasQuery && !isCollection && !isProfile) {
|
|
556
559
|
this.placeholderType = 'empty-query';
|
|
557
|
-
} else if (noResults) {
|
|
560
|
+
} else if (noResults && this.manageViewMode !== 'initial') {
|
|
558
561
|
// Within a collection, no query + no results means the collection simply has no viewable items.
|
|
559
562
|
// Otherwise, we must have a user query that produced 0 results.
|
|
560
563
|
this.placeholderType =
|
|
@@ -701,7 +704,7 @@ export class CollectionBrowser
|
|
|
701
704
|
<div id="cb-top-view">
|
|
702
705
|
<slot name="cb-top-slot"></slot>
|
|
703
706
|
</div>
|
|
704
|
-
${this.
|
|
707
|
+
${this.manageViewMode
|
|
705
708
|
? this.manageBarTemplate
|
|
706
709
|
: this.sortFilterBarTemplate}
|
|
707
710
|
<slot name="cb-results"></slot>
|
|
@@ -801,7 +804,7 @@ export class CollectionBrowser
|
|
|
801
804
|
@selectAll=${() => this.dataSource.checkAllTiles()}
|
|
802
805
|
@unselectAll=${() => this.dataSource.uncheckAllTiles()}
|
|
803
806
|
@cancel=${() => {
|
|
804
|
-
this.
|
|
807
|
+
this.manageViewMode = '';
|
|
805
808
|
this.dataSource.uncheckAllTiles();
|
|
806
809
|
if (this.searchResultsLoading) this.dataSource.resetPages();
|
|
807
810
|
}}
|
|
@@ -815,13 +818,13 @@ export class CollectionBrowser
|
|
|
815
818
|
*/
|
|
816
819
|
private handleRemoveItems(): void {
|
|
817
820
|
this.dispatchEvent(
|
|
818
|
-
new CustomEvent<{ items:
|
|
821
|
+
new CustomEvent<{ items: string[] }>('itemRemovalRequested', {
|
|
819
822
|
detail: {
|
|
820
823
|
items: this.dataSource.checkedTileModels.map(model =>
|
|
821
|
-
model?.identifier ? model.identifier : ''
|
|
824
|
+
model?.identifier ? model.identifier : '',
|
|
822
825
|
),
|
|
823
826
|
},
|
|
824
|
-
})
|
|
827
|
+
}),
|
|
825
828
|
);
|
|
826
829
|
}
|
|
827
830
|
|
|
@@ -830,13 +833,13 @@ export class CollectionBrowser
|
|
|
830
833
|
*/
|
|
831
834
|
private handleManageItems(): void {
|
|
832
835
|
this.dispatchEvent(
|
|
833
|
-
new CustomEvent<{ items:
|
|
836
|
+
new CustomEvent<{ items: string[] }>('itemManagerRequested', {
|
|
834
837
|
detail: {
|
|
835
838
|
items: this.dataSource.checkedTileModels.map(model =>
|
|
836
|
-
model?.identifier ? model.identifier : ''
|
|
839
|
+
model?.identifier ? model.identifier : '',
|
|
837
840
|
),
|
|
838
841
|
},
|
|
839
|
-
})
|
|
842
|
+
}),
|
|
840
843
|
);
|
|
841
844
|
}
|
|
842
845
|
|
|
@@ -869,7 +872,7 @@ export class CollectionBrowser
|
|
|
869
872
|
e: CustomEvent<{
|
|
870
873
|
selectedSort: SortField;
|
|
871
874
|
sortDirection: SortDirection | null;
|
|
872
|
-
}
|
|
875
|
+
}>,
|
|
873
876
|
) {
|
|
874
877
|
const { selectedSort, sortDirection } = e.detail;
|
|
875
878
|
this.selectedSort = selectedSort;
|
|
@@ -943,7 +946,7 @@ export class CollectionBrowser
|
|
|
943
946
|
* Handler for when the display mode option is changed (grid/list/compact-list views).
|
|
944
947
|
*/
|
|
945
948
|
private displayModeChanged(
|
|
946
|
-
e: CustomEvent<{ displayMode?: CollectionDisplayMode }
|
|
949
|
+
e: CustomEvent<{ displayMode?: CollectionDisplayMode }>,
|
|
947
950
|
): void {
|
|
948
951
|
this.displayMode = e.detail.displayMode;
|
|
949
952
|
|
|
@@ -1000,7 +1003,7 @@ export class CollectionBrowser
|
|
|
1000
1003
|
* labels: 'start-<ToLetter>' | 'clear-<FromLetter>' | '<FromLetter>-<ToLetter>'
|
|
1001
1004
|
*/
|
|
1002
1005
|
private sendFilterByCreatorAnalytics(
|
|
1003
|
-
prevSelectedLetter: string | null
|
|
1006
|
+
prevSelectedLetter: string | null,
|
|
1004
1007
|
): void {
|
|
1005
1008
|
if (!prevSelectedLetter && !this.selectedCreatorFilter) {
|
|
1006
1009
|
return;
|
|
@@ -1020,7 +1023,7 @@ export class CollectionBrowser
|
|
|
1020
1023
|
* Handler for changes to which letter is selected in the title alphabet bar.
|
|
1021
1024
|
*/
|
|
1022
1025
|
private titleLetterSelected(
|
|
1023
|
-
e: CustomEvent<{ selectedLetter: string | null }
|
|
1026
|
+
e: CustomEvent<{ selectedLetter: string | null }>,
|
|
1024
1027
|
): void {
|
|
1025
1028
|
this.selectedCreatorFilter = null;
|
|
1026
1029
|
this.selectedTitleFilter = e.detail.selectedLetter;
|
|
@@ -1030,7 +1033,7 @@ export class CollectionBrowser
|
|
|
1030
1033
|
* Handler for changes to which letter is selected in the creator alphabet bar.
|
|
1031
1034
|
*/
|
|
1032
1035
|
private creatorLetterSelected(
|
|
1033
|
-
e: CustomEvent<{ selectedLetter: string | null }
|
|
1036
|
+
e: CustomEvent<{ selectedLetter: string | null }>,
|
|
1034
1037
|
): void {
|
|
1035
1038
|
this.selectedTitleFilter = null;
|
|
1036
1039
|
this.selectedCreatorFilter = e.detail.selectedLetter;
|
|
@@ -1105,7 +1108,7 @@ export class CollectionBrowser
|
|
|
1105
1108
|
.contentWidth=${this.contentWidth}
|
|
1106
1109
|
.query=${this.baseQuery}
|
|
1107
1110
|
.filterMap=${this.dataSource.filterMap}
|
|
1108
|
-
.isManageView=${this.
|
|
1111
|
+
.isManageView=${!!this.manageViewMode}
|
|
1109
1112
|
.modalManager=${this.modalManager}
|
|
1110
1113
|
?collapsableFacets=${this.mobileView}
|
|
1111
1114
|
?facetsLoading=${this.facetsLoading}
|
|
@@ -1151,7 +1154,7 @@ export class CollectionBrowser
|
|
|
1151
1154
|
* @param mobile Whether to style/shorten the button for mobile view
|
|
1152
1155
|
*/
|
|
1153
1156
|
private clearFiltersBtnTemplate(
|
|
1154
|
-
mobile: boolean
|
|
1157
|
+
mobile: boolean,
|
|
1155
1158
|
): TemplateResult | typeof nothing {
|
|
1156
1159
|
if (!this.hasActiveFilters) return nothing;
|
|
1157
1160
|
|
|
@@ -1200,7 +1203,7 @@ export class CollectionBrowser
|
|
|
1200
1203
|
e: CustomEvent<{
|
|
1201
1204
|
minDate: string;
|
|
1202
1205
|
maxDate: string;
|
|
1203
|
-
}
|
|
1206
|
+
}>,
|
|
1204
1207
|
) {
|
|
1205
1208
|
const { minDate, maxDate } = e.detail;
|
|
1206
1209
|
[this.minSelectedDate, this.maxSelectedDate] = [minDate, maxDate];
|
|
@@ -1228,9 +1231,9 @@ export class CollectionBrowser
|
|
|
1228
1231
|
*/
|
|
1229
1232
|
private emitManageModeChangedEvent(): void {
|
|
1230
1233
|
this.dispatchEvent(
|
|
1231
|
-
new CustomEvent<
|
|
1232
|
-
detail: this.
|
|
1233
|
-
})
|
|
1234
|
+
new CustomEvent<string>('manageModeChanged', {
|
|
1235
|
+
detail: this.manageViewMode,
|
|
1236
|
+
}),
|
|
1234
1237
|
);
|
|
1235
1238
|
}
|
|
1236
1239
|
|
|
@@ -1249,7 +1252,7 @@ export class CollectionBrowser
|
|
|
1249
1252
|
*/
|
|
1250
1253
|
async installDataSourceAndQueryState(
|
|
1251
1254
|
dataSource: CollectionBrowserDataSourceInterface,
|
|
1252
|
-
queryState: CollectionBrowserQueryState
|
|
1255
|
+
queryState: CollectionBrowserQueryState,
|
|
1253
1256
|
): Promise<void> {
|
|
1254
1257
|
log('Installing data source & query state in CB:', dataSource, queryState);
|
|
1255
1258
|
if (this.dataSource) this.removeController(this.dataSource);
|
|
@@ -1408,12 +1411,12 @@ export class CollectionBrowser
|
|
|
1408
1411
|
|
|
1409
1412
|
if (changed.has('selectedTitleFilter')) {
|
|
1410
1413
|
this.sendFilterByTitleAnalytics(
|
|
1411
|
-
changed.get('selectedTitleFilter') as string
|
|
1414
|
+
changed.get('selectedTitleFilter') as string,
|
|
1412
1415
|
);
|
|
1413
1416
|
}
|
|
1414
1417
|
if (changed.has('selectedCreatorFilter')) {
|
|
1415
1418
|
this.sendFilterByCreatorAnalytics(
|
|
1416
|
-
changed.get('selectedCreatorFilter') as string
|
|
1419
|
+
changed.get('selectedCreatorFilter') as string,
|
|
1417
1420
|
);
|
|
1418
1421
|
}
|
|
1419
1422
|
|
|
@@ -1456,8 +1459,12 @@ export class CollectionBrowser
|
|
|
1456
1459
|
}
|
|
1457
1460
|
}
|
|
1458
1461
|
|
|
1459
|
-
if (changed.has('
|
|
1460
|
-
|
|
1462
|
+
if (changed.has('manageViewMode')) {
|
|
1463
|
+
console.log('here1');
|
|
1464
|
+
if (this.infiniteScroller)
|
|
1465
|
+
this.infiniteScroller.itemCount = this.estimatedTileCount;
|
|
1466
|
+
|
|
1467
|
+
if (this.manageViewMode) {
|
|
1461
1468
|
this.displayMode = 'grid';
|
|
1462
1469
|
this.fetchManagableSearchResults();
|
|
1463
1470
|
} else if (this.pageContext === 'search') this.infiniteScroller?.reload();
|
|
@@ -1468,10 +1475,10 @@ export class CollectionBrowser
|
|
|
1468
1475
|
|
|
1469
1476
|
if (changed.has('resizeObserver')) {
|
|
1470
1477
|
const oldObserver = changed.get(
|
|
1471
|
-
'resizeObserver'
|
|
1478
|
+
'resizeObserver',
|
|
1472
1479
|
) as SharedResizeObserverInterface;
|
|
1473
1480
|
if (oldObserver) this.disconnectResizeObserver(oldObserver);
|
|
1474
|
-
this.setupResizeObserver();
|
|
1481
|
+
// this.setupResizeObserver();
|
|
1475
1482
|
}
|
|
1476
1483
|
|
|
1477
1484
|
this.ensureAvailableTilesDisplayed();
|
|
@@ -1525,7 +1532,7 @@ export class CollectionBrowser
|
|
|
1525
1532
|
this.setTileCount(
|
|
1526
1533
|
this.dataSource.endOfDataReached
|
|
1527
1534
|
? this.dataSource.size
|
|
1528
|
-
: this.estimatedTileCount
|
|
1535
|
+
: this.estimatedTileCount,
|
|
1529
1536
|
);
|
|
1530
1537
|
}
|
|
1531
1538
|
}
|
|
@@ -1546,7 +1553,7 @@ export class CollectionBrowser
|
|
|
1546
1553
|
// In desktop view, we are always ready to load facets *unless* we are using one of the
|
|
1547
1554
|
// `opt-in` strategies and have not opted in (whether by login or UI interaction).
|
|
1548
1555
|
const usingOptInStrategy = ['opt-in', 'opt-in-or-login'].includes(
|
|
1549
|
-
this.facetLoadStrategy
|
|
1556
|
+
this.facetLoadStrategy,
|
|
1550
1557
|
);
|
|
1551
1558
|
const desktopFacetsReady =
|
|
1552
1559
|
!this.mobileView && (!usingOptInStrategy || optedIn);
|
|
@@ -1556,7 +1563,7 @@ export class CollectionBrowser
|
|
|
1556
1563
|
const mobileFacetsReady = this.mobileView && optedIn;
|
|
1557
1564
|
|
|
1558
1565
|
this.dataSource.handleFacetReadinessChange(
|
|
1559
|
-
desktopFacetsReady || mobileFacetsReady
|
|
1566
|
+
desktopFacetsReady || mobileFacetsReady,
|
|
1560
1567
|
);
|
|
1561
1568
|
}
|
|
1562
1569
|
|
|
@@ -1569,14 +1576,14 @@ export class CollectionBrowser
|
|
|
1569
1576
|
// match the _available_ viewport height. This should generally be more
|
|
1570
1577
|
// performant than listening to scroll events on the page or column.
|
|
1571
1578
|
const leftColumnSentinel = this.shadowRoot?.querySelector(
|
|
1572
|
-
'#left-column-scroll-sentinel'
|
|
1579
|
+
'#left-column-scroll-sentinel',
|
|
1573
1580
|
);
|
|
1574
1581
|
if (leftColumnSentinel) {
|
|
1575
1582
|
this.leftColIntersectionObserver = new IntersectionObserver(
|
|
1576
1583
|
this.updateLeftColumnHeight,
|
|
1577
1584
|
{
|
|
1578
1585
|
threshold: [...Array(201).keys()].map(n => n / 200), // Threshold every 0.5%
|
|
1579
|
-
}
|
|
1586
|
+
},
|
|
1580
1587
|
);
|
|
1581
1588
|
this.leftColIntersectionObserver.observe(leftColumnSentinel);
|
|
1582
1589
|
}
|
|
@@ -1593,11 +1600,11 @@ export class CollectionBrowser
|
|
|
1593
1600
|
*/
|
|
1594
1601
|
private setupFacetsScrollListeners(): void {
|
|
1595
1602
|
const facetsSentinel = this.shadowRoot?.querySelector(
|
|
1596
|
-
'#facets-scroll-sentinel'
|
|
1603
|
+
'#facets-scroll-sentinel',
|
|
1597
1604
|
);
|
|
1598
1605
|
if (facetsSentinel) {
|
|
1599
1606
|
this.facetsIntersectionObserver = new IntersectionObserver(
|
|
1600
|
-
this.updateFacetFadeOut
|
|
1607
|
+
this.updateFacetFadeOut,
|
|
1601
1608
|
);
|
|
1602
1609
|
this.facetsIntersectionObserver.observe(facetsSentinel);
|
|
1603
1610
|
}
|
|
@@ -1642,7 +1649,7 @@ export class CollectionBrowser
|
|
|
1642
1649
|
detail: {
|
|
1643
1650
|
baseQuery: this.baseQuery,
|
|
1644
1651
|
},
|
|
1645
|
-
})
|
|
1652
|
+
}),
|
|
1646
1653
|
);
|
|
1647
1654
|
}
|
|
1648
1655
|
|
|
@@ -1654,7 +1661,7 @@ export class CollectionBrowser
|
|
|
1654
1661
|
this.dispatchEvent(
|
|
1655
1662
|
new CustomEvent<SearchType>('searchTypeChanged', {
|
|
1656
1663
|
detail: this.searchType,
|
|
1657
|
-
})
|
|
1664
|
+
}),
|
|
1658
1665
|
);
|
|
1659
1666
|
}
|
|
1660
1667
|
|
|
@@ -1679,7 +1686,7 @@ export class CollectionBrowser
|
|
|
1679
1686
|
selectedTitleFilter: this.selectedTitleFilter,
|
|
1680
1687
|
selectedCreatorFilter: this.selectedCreatorFilter,
|
|
1681
1688
|
},
|
|
1682
|
-
})
|
|
1689
|
+
}),
|
|
1683
1690
|
);
|
|
1684
1691
|
}
|
|
1685
1692
|
|
|
@@ -1692,7 +1699,7 @@ export class CollectionBrowser
|
|
|
1692
1699
|
}
|
|
1693
1700
|
|
|
1694
1701
|
private disconnectResizeObserver(
|
|
1695
|
-
resizeObserver: SharedResizeObserverInterface
|
|
1702
|
+
resizeObserver: SharedResizeObserverInterface,
|
|
1696
1703
|
) {
|
|
1697
1704
|
resizeObserver.removeObserver({
|
|
1698
1705
|
target: this.contentContainer,
|
|
@@ -1716,7 +1723,7 @@ export class CollectionBrowser
|
|
|
1716
1723
|
* @returns
|
|
1717
1724
|
*/
|
|
1718
1725
|
private visibleCellsChanged(
|
|
1719
|
-
e: CustomEvent<{ visibleCellIndices: number[] }
|
|
1726
|
+
e: CustomEvent<{ visibleCellIndices: number[] }>,
|
|
1720
1727
|
) {
|
|
1721
1728
|
if (this.isScrollingToCell) return;
|
|
1722
1729
|
const { visibleCellIndices } = e.detail;
|
|
@@ -1864,7 +1871,7 @@ export class CollectionBrowser
|
|
|
1864
1871
|
};
|
|
1865
1872
|
this.restorationStateHandler.persistState(
|
|
1866
1873
|
restorationState,
|
|
1867
|
-
this.dataSourceInstallInProgress
|
|
1874
|
+
this.dataSourceInstallInProgress,
|
|
1868
1875
|
);
|
|
1869
1876
|
}
|
|
1870
1877
|
|
|
@@ -1878,7 +1885,7 @@ export class CollectionBrowser
|
|
|
1878
1885
|
detail: {
|
|
1879
1886
|
loading: this.searchResultsLoading,
|
|
1880
1887
|
},
|
|
1881
|
-
})
|
|
1888
|
+
}),
|
|
1882
1889
|
);
|
|
1883
1890
|
}
|
|
1884
1891
|
|
|
@@ -2042,7 +2049,7 @@ export class CollectionBrowser
|
|
|
2042
2049
|
* Callback when a result is selected
|
|
2043
2050
|
*/
|
|
2044
2051
|
resultSelected(event: CustomEvent<TileModel>): void {
|
|
2045
|
-
if (this.
|
|
2052
|
+
if (this.manageViewMode) {
|
|
2046
2053
|
// Checked/unchecked state change -- rerender to ensure it propagates
|
|
2047
2054
|
// this.mapDataSource(model => ({ ...model }));
|
|
2048
2055
|
const cellIndex = this.dataSource.indexOf(event.detail);
|
|
@@ -2082,7 +2089,7 @@ export class CollectionBrowser
|
|
|
2082
2089
|
.creatorFilter=${this.selectedCreatorFilter}
|
|
2083
2090
|
.mobileBreakpoint=${this.mobileBreakpoint}
|
|
2084
2091
|
.loggedIn=${this.loggedIn}
|
|
2085
|
-
.isManageView=${this.
|
|
2092
|
+
.isManageView=${!!this.manageViewMode}
|
|
2086
2093
|
?enableHoverPane=${true}
|
|
2087
2094
|
@resultSelected=${(e: CustomEvent) => this.resultSelected(e)}
|
|
2088
2095
|
>
|
|
@@ -2112,10 +2119,12 @@ export class CollectionBrowser
|
|
|
2112
2119
|
*/
|
|
2113
2120
|
private fetchManagableSearchResults(): void {
|
|
2114
2121
|
if (
|
|
2115
|
-
this.pageContext === 'search' &&
|
|
2116
|
-
|
|
2117
|
-
|
|
2122
|
+
(this.pageContext === 'search' &&
|
|
2123
|
+
this.dataSource.totalResults > 100 &&
|
|
2124
|
+
!this.searchResultsLoading) ||
|
|
2125
|
+
this.manageViewMode === 'initial'
|
|
2118
2126
|
) {
|
|
2127
|
+
console.log('here22');
|
|
2119
2128
|
this.dataSource.resetPages();
|
|
2120
2129
|
this.dataSource.fetchPage(1, this.maxPagesToManage);
|
|
2121
2130
|
this.infiniteScroller?.reload();
|
|
@@ -44,12 +44,13 @@ export class FacetsTemplate extends LitElement {
|
|
|
44
44
|
${repeat(
|
|
45
45
|
facetBuckets,
|
|
46
46
|
bucket => `${facetGroup.key}:${bucket.key}`,
|
|
47
|
-
bucket =>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
bucket =>
|
|
48
|
+
html`<facet-row
|
|
49
|
+
.facetType=${facetGroup.key}
|
|
50
|
+
.bucket=${bucket}
|
|
51
|
+
.collectionTitles=${this.collectionTitles}
|
|
52
|
+
@facetClick=${this.facetClicked}
|
|
53
|
+
></facet-row>`,
|
|
53
54
|
)}
|
|
54
55
|
</div>
|
|
55
56
|
`;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/* eslint-disable dot-notation */
|
|
2
|
-
/* eslint-disable lit-a11y/click-events-have-key-events */
|
|
3
1
|
import {
|
|
4
2
|
css,
|
|
5
3
|
CSSResultGroup,
|
|
@@ -39,7 +37,7 @@ import type {
|
|
|
39
37
|
CollectionTitles,
|
|
40
38
|
PageSpecifierParams,
|
|
41
39
|
} from '../data-source/models';
|
|
42
|
-
import '@internetarchive/ia-activity-indicator
|
|
40
|
+
import '@internetarchive/ia-activity-indicator';
|
|
43
41
|
import './more-facets-pagination';
|
|
44
42
|
import './facets-template';
|
|
45
43
|
import {
|
|
@@ -247,7 +245,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
247
245
|
const bucketsWithCount =
|
|
248
246
|
selectedFacetGroup?.buckets.map(bucket => {
|
|
249
247
|
const selectedBucket = aggregationFacetGroup.buckets.find(
|
|
250
|
-
b => b.key === bucket.key
|
|
248
|
+
b => b.key === bucket.key,
|
|
251
249
|
);
|
|
252
250
|
return selectedBucket
|
|
253
251
|
? {
|
|
@@ -265,7 +263,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
265
263
|
// Append any additional buckets that were not selected
|
|
266
264
|
aggregationFacetGroup.buckets.forEach(bucket => {
|
|
267
265
|
const existingBucket = selectedFacetGroup?.buckets.find(
|
|
268
|
-
b => b.key === bucket.key
|
|
266
|
+
b => b.key === bucket.key,
|
|
269
267
|
);
|
|
270
268
|
if (existingBucket) return;
|
|
271
269
|
bucketsWithCount.push(bucket);
|
|
@@ -305,7 +303,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
305
303
|
count: data?.count,
|
|
306
304
|
state: data?.state,
|
|
307
305
|
};
|
|
308
|
-
}
|
|
306
|
+
},
|
|
309
307
|
);
|
|
310
308
|
|
|
311
309
|
return {
|
|
@@ -329,7 +327,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
329
327
|
|
|
330
328
|
// Order the facets according to the current sort option
|
|
331
329
|
let sortedBuckets = currentAggregation.getSortedBuckets(
|
|
332
|
-
this.sortedBy
|
|
330
|
+
this.sortedBy,
|
|
333
331
|
) as Bucket[];
|
|
334
332
|
|
|
335
333
|
if (this.facetKey === 'collection') {
|
|
@@ -371,7 +369,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
371
369
|
const firstBucketIndexOnPage = (this.pageNumber - 1) * this.facetsPerPage;
|
|
372
370
|
const truncatedBuckets = facetGroup.buckets.slice(
|
|
373
371
|
firstBucketIndexOnPage,
|
|
374
|
-
firstBucketIndexOnPage + this.facetsPerPage
|
|
372
|
+
firstBucketIndexOnPage + this.facetsPerPage,
|
|
375
373
|
);
|
|
376
374
|
|
|
377
375
|
return {
|
|
@@ -391,7 +389,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
391
389
|
this.unappliedFacetChanges = updateSelectedFacetBucket(
|
|
392
390
|
this.unappliedFacetChanges,
|
|
393
391
|
this.facetKey,
|
|
394
|
-
e.detail.bucket
|
|
392
|
+
e.detail.bucket,
|
|
395
393
|
);
|
|
396
394
|
}
|
|
397
395
|
}}
|
|
@@ -454,7 +452,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
454
452
|
private sortFacetAggregation(facetSortType: AggregationSortType) {
|
|
455
453
|
this.sortedBy = facetSortType;
|
|
456
454
|
this.dispatchEvent(
|
|
457
|
-
new CustomEvent('sortedFacets', { detail: this.sortedBy })
|
|
455
|
+
new CustomEvent('sortedFacets', { detail: this.sortedBy }),
|
|
458
456
|
);
|
|
459
457
|
}
|
|
460
458
|
|
|
@@ -475,11 +473,11 @@ export class MoreFacetsContent extends LitElement {
|
|
|
475
473
|
leftValue=${AggregationSortType.COUNT}
|
|
476
474
|
leftLabel="Count"
|
|
477
475
|
rightValue=${valueFacetSort[this.facetKey]}
|
|
478
|
-
rightLabel=${this.facetGroup?.title}
|
|
476
|
+
.rightLabel=${this.facetGroup?.title}
|
|
479
477
|
side=${defaultSwitchSide}
|
|
480
478
|
@change=${(e: CustomEvent<string>) => {
|
|
481
479
|
this.sortFacetAggregation(
|
|
482
|
-
Number(e.detail) as AggregationSortType
|
|
480
|
+
Number(e.detail) as AggregationSortType,
|
|
483
481
|
);
|
|
484
482
|
}}
|
|
485
483
|
></toggle-switch>`
|
|
@@ -504,7 +502,7 @@ export class MoreFacetsContent extends LitElement {
|
|
|
504
502
|
private applySearchFacetsClicked() {
|
|
505
503
|
const mergedSelections = mergeSelectedFacets(
|
|
506
504
|
this.selectedFacets,
|
|
507
|
-
this.unappliedFacetChanges
|
|
505
|
+
this.unappliedFacetChanges,
|
|
508
506
|
);
|
|
509
507
|
|
|
510
508
|
const event = new CustomEvent<SelectedFacets>('facetsChanged', {
|
|
@@ -31,6 +31,7 @@ export class MoreFacetsPagination extends LitElement {
|
|
|
31
31
|
this.observePageCount();
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
35
|
override updated(changed: Map<string, any>) {
|
|
35
36
|
if (changed.has('size')) {
|
|
36
37
|
this.observePageCount();
|
|
@@ -175,7 +176,7 @@ export class MoreFacetsPagination extends LitElement {
|
|
|
175
176
|
detail: { page: this.currentPage },
|
|
176
177
|
bubbles: true,
|
|
177
178
|
composed: true,
|
|
178
|
-
})
|
|
179
|
+
}),
|
|
179
180
|
);
|
|
180
181
|
}
|
|
181
182
|
|
|
@@ -219,7 +220,7 @@ export class MoreFacetsPagination extends LitElement {
|
|
|
219
220
|
page =>
|
|
220
221
|
html`${page !== 0
|
|
221
222
|
? this.getPageTemplate(page)
|
|
222
|
-
: this.getEllipsisTemplate}
|
|
223
|
+
: this.getEllipsisTemplate}`,
|
|
223
224
|
)}
|
|
224
225
|
`;
|
|
225
226
|
}
|
|
@@ -16,7 +16,7 @@ export function dedupe<T extends SmartFacet[] | SmartFacet[][]>(facets: T): T {
|
|
|
16
16
|
let result: SmartFacet[] = [...facetsUnnested];
|
|
17
17
|
for (const curFacet of facetsUnnested) {
|
|
18
18
|
result = result.filter(
|
|
19
|
-
sf => curFacet === sf || !smartFacetEquals(curFacet, sf)
|
|
19
|
+
sf => curFacet === sf || !smartFacetEquals(curFacet, sf),
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ export function dedupe<T extends SmartFacet[] | SmartFacet[][]>(facets: T): T {
|
|
|
30
30
|
const subresult: SmartFacet[] = [];
|
|
31
31
|
for (const curFacet of curFacetArray) {
|
|
32
32
|
const existing = result.find(sfa =>
|
|
33
|
-
sfa.find(sf => smartFacetEquals(curFacet, sf))
|
|
33
|
+
sfa.find(sf => smartFacetEquals(curFacet, sf)),
|
|
34
34
|
);
|
|
35
35
|
if (!existing) subresult.push(curFacet);
|
|
36
36
|
}
|
|
@@ -43,7 +43,7 @@ export class QueryKeywordsHeuristic implements SmartQueryHeuristic {
|
|
|
43
43
|
const recommendations: SmartFacet[] = [];
|
|
44
44
|
|
|
45
45
|
for (const [keyword, facets] of Object.entries(
|
|
46
|
-
QueryKeywordsHeuristic.KEYWORDS
|
|
46
|
+
QueryKeywordsHeuristic.KEYWORDS,
|
|
47
47
|
)) {
|
|
48
48
|
if (query.includes(keyword)) {
|
|
49
49
|
recommendations.push(...facets);
|
|
@@ -147,12 +147,12 @@ export class WikidataHeuristic implements SmartQueryHeuristic {
|
|
|
147
147
|
const urlQuery = encodeURIComponent(query);
|
|
148
148
|
|
|
149
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
|
|
150
|
+
`https://www.wikidata.org/w/api.php?action=wbsearchentities&search=${urlQuery}&format=json&language=en&uselang=en&origin=*&type=item&limit=5`,
|
|
151
151
|
);
|
|
152
152
|
const searchResults = await wikidataResponse.json();
|
|
153
153
|
|
|
154
154
|
for (const [keyword, facets] of Object.entries(
|
|
155
|
-
WikidataHeuristic.ENTITIES
|
|
155
|
+
WikidataHeuristic.ENTITIES,
|
|
156
156
|
)) {
|
|
157
157
|
const keywordRegex = new RegExp(`\\b${keyword}\\b`);
|
|
158
158
|
if (keywordRegex.test(searchResults.search[0]?.description)) {
|
|
@@ -171,20 +171,20 @@ export class WikidataHeuristic implements SmartQueryHeuristic {
|
|
|
171
171
|
if (f.displayText) {
|
|
172
172
|
replaced.displayText = replaced.displayText?.replace(
|
|
173
173
|
'__QUERY',
|
|
174
|
-
entityName
|
|
174
|
+
entityName,
|
|
175
175
|
);
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
return replaced;
|
|
179
179
|
}),
|
|
180
|
-
} as SmartFacet
|
|
181
|
-
)
|
|
180
|
+
}) as SmartFacet,
|
|
181
|
+
),
|
|
182
182
|
);
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
return recommendations;
|
|
187
|
-
} catch
|
|
187
|
+
} catch {
|
|
188
188
|
return [];
|
|
189
189
|
}
|
|
190
190
|
}
|
|
@@ -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
|
|