@internetarchive/collection-browser 2.7.7-alpha.1 → 2.7.7
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/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +13 -13
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.d.ts +99 -99
- package/dist/src/app-root.js +503 -502
- 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 +582 -582
- package/dist/src/collection-browser.js +1627 -1626
- 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 +408 -406
- 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 +196 -197
- 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 +240 -237
- 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 +522 -521
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
- 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 +373 -373
- package/dist/src/data-source/collection-browser-data-source.js +982 -981
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
- 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 +88 -87
- 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 +35 -35
- package/dist/src/manage/manage-bar.js +79 -79
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +91 -92
- package/dist/src/mediatype/mediatype-config.js.map +1 -1
- package/dist/src/models.d.ts +219 -219
- 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 +363 -362
- 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 +697 -696
- 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 +160 -159
- 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 +70 -72
- 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 +326 -324
- 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 +76 -75
- 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 +15 -13
- 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 +1293 -1294
- 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 +227 -230
- 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 +141 -140
- 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 +117 -116
- 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 +73 -82
- 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 +690 -689
- 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 +63 -62
- 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 +95 -95
- 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 +24 -23
- 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 +107 -106
- 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 +85 -84
- package/dist/test/item-image.test.js.map +1 -1
- package/dist/test/manage/manage-bar.test.d.ts +1 -1
- package/dist/test/manage/manage-bar.test.js +91 -90
- package/dist/test/manage/manage-bar.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 +44 -43
- 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 +426 -425
- 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 +38 -37
- 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 +57 -56
- 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 +99 -98
- 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 +76 -75
- 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 +73 -72
- 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 +312 -311
- 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 +51 -50
- 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 +143 -142
- 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 +297 -296
- 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/index.html +3 -0
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +37 -38
- package/renovate.json +6 -6
- package/src/app-root.ts +21 -20
- package/src/collection-browser.ts +35 -33
- package/src/collection-facets/facets-template.ts +6 -7
- package/src/collection-facets/more-facets-content.ts +13 -11
- package/src/collection-facets/more-facets-pagination.ts +2 -3
- 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 +8 -6
- package/src/collection-facets/smart-facets/smart-facet-button.ts +3 -5
- 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 +19 -18
- package/src/data-source/collection-browser-data-source-interface.ts +1 -5
- package/src/data-source/collection-browser-data-source.ts +34 -37
- package/src/empty-placeholder.ts +16 -19
- 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 +12 -14
- package/src/mediatype/mediatype-config.ts +0 -1
- package/src/models.ts +3 -3
- package/src/restoration-state-handler.ts +15 -14
- package/src/sort-filter-bar/alpha-bar.ts +17 -16
- package/src/sort-filter-bar/sort-filter-bar.ts +15 -14
- 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 +2 -4
- 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 +24 -22
- 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 +3 -2
- package/src/utils/format-date.ts +1 -1
- package/src/utils/format-unit-size.ts +1 -1
- package/src/utils/log.ts +3 -1
- package/test/collection-browser.test.ts +122 -123
- package/test/collection-facets/facet-row.test.ts +28 -31
- package/test/collection-facets/facets-template.test.ts +9 -9
- package/test/collection-facets/more-facets-content.test.ts +15 -14
- package/test/collection-facets/more-facets-pagination.test.ts +19 -18
- package/test/collection-facets/toggle-switch.test.ts +18 -28
- package/test/collection-facets.test.ts +37 -36
- package/test/data-source/collection-browser-data-source.test.ts +2 -2
- package/test/empty-placeholder.test.ts +7 -6
- package/test/expanded-date-picker.test.ts +18 -17
- package/test/icon-overlay.test.ts +1 -0
- package/test/image-block.test.ts +7 -6
- package/test/item-image.test.ts +1 -0
- package/test/manage/manage-bar.test.ts +14 -13
- package/test/mocks/mock-search-responses.ts +1 -2
- package/test/mocks/mock-search-service.ts +1 -1
- package/test/restoration-state-handler.test.ts +12 -12
- package/test/review-block.test.ts +2 -1
- 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 +39 -38
- package/test/text-overlay.test.ts +1 -0
- package/test/text-snippet-block.test.ts +6 -5
- package/test/tile-stats.test.ts +35 -26
- package/test/tiles/grid/account-tile.test.ts +3 -2
- package/test/tiles/grid/collection-tile.test.ts +4 -3
- package/test/tiles/grid/item-tile.test.ts +14 -13
- package/test/tiles/grid/search-tile.test.ts +2 -1
- 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 +2 -1
- package/test/tiles/list/tile-list.test.ts +11 -10
- 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 +1 -0
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
- package/.prettierignore +0 -1
- package/eslint.config.mjs +0 -53
|
@@ -87,7 +87,7 @@ export class RestorationStateHandler
|
|
|
87
87
|
|
|
88
88
|
private persistQueryStateToUrl(
|
|
89
89
|
state: RestorationState,
|
|
90
|
-
forceReplace = false
|
|
90
|
+
forceReplace = false
|
|
91
91
|
) {
|
|
92
92
|
const url = new URL(window.location.href);
|
|
93
93
|
const oldParams = new URLSearchParams(url.searchParams);
|
|
@@ -145,9 +145,10 @@ export class RestorationStateHandler
|
|
|
145
145
|
|
|
146
146
|
if (state.selectedFacets) {
|
|
147
147
|
for (const [facetName, facetValues] of Object.entries(
|
|
148
|
-
state.selectedFacets
|
|
148
|
+
state.selectedFacets
|
|
149
149
|
)) {
|
|
150
150
|
const facetEntries = Object.entries(facetValues);
|
|
151
|
+
// eslint-disable-next-line no-continue
|
|
151
152
|
if (facetEntries.length === 0) continue;
|
|
152
153
|
for (const [key, data] of facetEntries) {
|
|
153
154
|
const notValue = data.state === 'hidden';
|
|
@@ -164,7 +165,7 @@ export class RestorationStateHandler
|
|
|
164
165
|
if (state.minSelectedDate && state.maxSelectedDate) {
|
|
165
166
|
newParams.append(
|
|
166
167
|
'and[]',
|
|
167
|
-
`year:[${state.minSelectedDate} TO ${state.maxSelectedDate}]
|
|
168
|
+
`year:[${state.minSelectedDate} TO ${state.maxSelectedDate}]`
|
|
168
169
|
);
|
|
169
170
|
}
|
|
170
171
|
|
|
@@ -220,7 +221,7 @@ export class RestorationStateHandler
|
|
|
220
221
|
facets: state.selectedFacets,
|
|
221
222
|
},
|
|
222
223
|
'',
|
|
223
|
-
url
|
|
224
|
+
url
|
|
224
225
|
);
|
|
225
226
|
}
|
|
226
227
|
|
|
@@ -317,18 +318,18 @@ export class RestorationStateHandler
|
|
|
317
318
|
if (minDate && maxDate) {
|
|
318
319
|
restorationState.minSelectedDate = minDate.substring(
|
|
319
320
|
1,
|
|
320
|
-
minDate.length
|
|
321
|
+
minDate.length
|
|
321
322
|
);
|
|
322
323
|
restorationState.maxSelectedDate = maxDate.substring(
|
|
323
324
|
0,
|
|
324
|
-
maxDate.length - 1
|
|
325
|
+
maxDate.length - 1
|
|
325
326
|
);
|
|
326
327
|
} else {
|
|
327
328
|
this.setSelectedFacetState(
|
|
328
329
|
restorationState.selectedFacets,
|
|
329
330
|
field as FacetOption,
|
|
330
331
|
value,
|
|
331
|
-
'selected'
|
|
332
|
+
'selected'
|
|
332
333
|
);
|
|
333
334
|
}
|
|
334
335
|
break;
|
|
@@ -344,7 +345,7 @@ export class RestorationStateHandler
|
|
|
344
345
|
restorationState.selectedFacets,
|
|
345
346
|
field as FacetOption,
|
|
346
347
|
value,
|
|
347
|
-
'selected'
|
|
348
|
+
'selected'
|
|
348
349
|
);
|
|
349
350
|
}
|
|
350
351
|
});
|
|
@@ -357,7 +358,7 @@ export class RestorationStateHandler
|
|
|
357
358
|
restorationState.selectedFacets,
|
|
358
359
|
field as FacetOption,
|
|
359
360
|
value,
|
|
360
|
-
'hidden'
|
|
361
|
+
'hidden'
|
|
361
362
|
);
|
|
362
363
|
});
|
|
363
364
|
}
|
|
@@ -407,13 +408,13 @@ export class RestorationStateHandler
|
|
|
407
408
|
private paramsMatch(
|
|
408
409
|
searchParams1: URLSearchParams,
|
|
409
410
|
searchParams2: URLSearchParams,
|
|
410
|
-
keys: string[]
|
|
411
|
+
keys: string[]
|
|
411
412
|
): boolean {
|
|
412
413
|
return keys.every(key =>
|
|
413
414
|
arrayEquals(
|
|
414
415
|
searchParams1.getAll(key).sort(),
|
|
415
|
-
searchParams2.getAll(key).sort()
|
|
416
|
-
)
|
|
416
|
+
searchParams2.getAll(key).sort()
|
|
417
|
+
)
|
|
417
418
|
);
|
|
418
419
|
}
|
|
419
420
|
|
|
@@ -422,7 +423,7 @@ export class RestorationStateHandler
|
|
|
422
423
|
* when loading state from the URL.
|
|
423
424
|
*/
|
|
424
425
|
private removeRecognizedParams(
|
|
425
|
-
searchParams: URLSearchParams
|
|
426
|
+
searchParams: URLSearchParams
|
|
426
427
|
): URLSearchParams {
|
|
427
428
|
// Remove all of our standard params
|
|
428
429
|
searchParams.delete('query');
|
|
@@ -463,7 +464,7 @@ export class RestorationStateHandler
|
|
|
463
464
|
selectedFacets: SelectedFacets,
|
|
464
465
|
field: FacetOption,
|
|
465
466
|
value: string,
|
|
466
|
-
state: FacetState
|
|
467
|
+
state: FacetState
|
|
467
468
|
): void {
|
|
468
469
|
const facet = selectedFacets[field];
|
|
469
470
|
if (!facet) return; // Unrecognized facet group, ignore it.
|
|
@@ -33,18 +33,19 @@ export class AlphaBar extends LitElement {
|
|
|
33
33
|
<section id="container" aria-label=${this.ariaLandmarkLabel ?? nothing}>
|
|
34
34
|
<ul>
|
|
35
35
|
${this.alphabet.map(
|
|
36
|
-
letter =>
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
letter =>
|
|
37
|
+
html`
|
|
38
|
+
<li
|
|
39
|
+
class=${letter === this.selectedUppercaseLetter
|
|
40
|
+
? 'selected'
|
|
41
|
+
: nothing}
|
|
42
|
+
@mousemove=${this.handleMouseMove}
|
|
43
|
+
@mouseleave=${this.handleMouseLeave}
|
|
44
|
+
>
|
|
45
|
+
${this.letterButtonTemplate(letter)}
|
|
46
|
+
${this.tooltipTemplate(letter)}
|
|
47
|
+
</li>
|
|
48
|
+
`
|
|
48
49
|
)}
|
|
49
50
|
</ul>
|
|
50
51
|
</section>
|
|
@@ -86,7 +87,7 @@ export class AlphaBar extends LitElement {
|
|
|
86
87
|
this.dispatchEvent(
|
|
87
88
|
new CustomEvent('letterChanged', {
|
|
88
89
|
detail: { selectedLetter: this.selectedUppercaseLetter },
|
|
89
|
-
})
|
|
90
|
+
})
|
|
90
91
|
);
|
|
91
92
|
}
|
|
92
93
|
|
|
@@ -126,10 +127,10 @@ export class AlphaBar extends LitElement {
|
|
|
126
127
|
// (but not including any scrollbar).
|
|
127
128
|
const bodyStyle = getComputedStyle(document.body);
|
|
128
129
|
const bodyMarginLeft = parseFloat(
|
|
129
|
-
bodyStyle.getPropertyValue('margin-left')
|
|
130
|
+
bodyStyle.getPropertyValue('margin-left')
|
|
130
131
|
);
|
|
131
132
|
const bodyMarginRight = parseFloat(
|
|
132
|
-
bodyStyle.getPropertyValue('margin-right')
|
|
133
|
+
bodyStyle.getPropertyValue('margin-right')
|
|
133
134
|
);
|
|
134
135
|
const bodyWidthWithMargin =
|
|
135
136
|
document.body.clientWidth + bodyMarginLeft + bodyMarginRight;
|
|
@@ -154,7 +155,7 @@ export class AlphaBar extends LitElement {
|
|
|
154
155
|
left -= overflowAmt;
|
|
155
156
|
this.tooltip.style.setProperty(
|
|
156
157
|
'--tooltipArrowOffset',
|
|
157
|
-
`${overflowAmt}px
|
|
158
|
+
`${overflowAmt}px`
|
|
158
159
|
);
|
|
159
160
|
}
|
|
160
161
|
|
|
@@ -228,7 +228,7 @@ export class SortFilterBar
|
|
|
228
228
|
|
|
229
229
|
if (changed.has('resizeObserver') || changed.has('enableSortOptionsSlot')) {
|
|
230
230
|
const oldObserver = changed.get(
|
|
231
|
-
'resizeObserver'
|
|
231
|
+
'resizeObserver'
|
|
232
232
|
) as SharedResizeObserverInterface;
|
|
233
233
|
if (oldObserver) this.disconnectResizeObserver(oldObserver);
|
|
234
234
|
this.setupResizeObserver();
|
|
@@ -239,12 +239,12 @@ export class SortFilterBar
|
|
|
239
239
|
if (this.dropdownBackdropVisible) {
|
|
240
240
|
document.addEventListener(
|
|
241
241
|
'keydown',
|
|
242
|
-
this.boundSortBarSelectorEscapeListener
|
|
242
|
+
this.boundSortBarSelectorEscapeListener
|
|
243
243
|
);
|
|
244
244
|
} else {
|
|
245
245
|
document.removeEventListener(
|
|
246
246
|
'keydown',
|
|
247
|
-
this.boundSortBarSelectorEscapeListener
|
|
247
|
+
this.boundSortBarSelectorEscapeListener
|
|
248
248
|
);
|
|
249
249
|
}
|
|
250
250
|
}
|
|
@@ -267,7 +267,7 @@ export class SortFilterBar
|
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
private disconnectResizeObserver(
|
|
270
|
-
resizeObserver: SharedResizeObserverInterface
|
|
270
|
+
resizeObserver: SharedResizeObserverInterface
|
|
271
271
|
) {
|
|
272
272
|
if (this.sortSelectorContainer) {
|
|
273
273
|
resizeObserver.removeObserver({
|
|
@@ -430,7 +430,7 @@ export class SortFilterBar
|
|
|
430
430
|
.filter(opt => opt.shownInSortBar)
|
|
431
431
|
.filter(opt => this.showRelevance || opt.field !== SortField.relevance)
|
|
432
432
|
.filter(
|
|
433
|
-
opt => this.showDateFavorited || opt.field !== SortField.datefavorited
|
|
433
|
+
opt => this.showDateFavorited || opt.field !== SortField.datefavorited
|
|
434
434
|
);
|
|
435
435
|
|
|
436
436
|
return html`
|
|
@@ -439,11 +439,12 @@ export class SortFilterBar
|
|
|
439
439
|
class=${this.mobileSelectorVisible ? 'visible' : 'hidden'}
|
|
440
440
|
>
|
|
441
441
|
${this.getSortDropdown({
|
|
442
|
-
displayName: html`${SORT_OPTIONS[this.finalizedSortField]
|
|
442
|
+
displayName: html`${SORT_OPTIONS[this.finalizedSortField]
|
|
443
|
+
.displayName}`,
|
|
443
444
|
id: 'mobile-dropdown',
|
|
444
445
|
selected: true,
|
|
445
446
|
dropdownOptions: displayedOptions.map(opt =>
|
|
446
|
-
this.getDropdownOption(opt.field)
|
|
447
|
+
this.getDropdownOption(opt.field)
|
|
447
448
|
),
|
|
448
449
|
selectedOption: this.finalizedSortField,
|
|
449
450
|
onOptionSelected: this.mobileSortChanged,
|
|
@@ -451,7 +452,7 @@ export class SortFilterBar
|
|
|
451
452
|
this.dropdownBackdropVisible = this.mobileDropdown.open;
|
|
452
453
|
this.mobileDropdown.classList.toggle(
|
|
453
454
|
'open',
|
|
454
|
-
this.mobileDropdown.open
|
|
455
|
+
this.mobileDropdown.open
|
|
455
456
|
);
|
|
456
457
|
},
|
|
457
458
|
})}
|
|
@@ -478,7 +479,7 @@ export class SortFilterBar
|
|
|
478
479
|
displayName?: TemplateResult;
|
|
479
480
|
selected?: boolean;
|
|
480
481
|
onClick?: (e: Event) => void;
|
|
481
|
-
}
|
|
482
|
+
}
|
|
482
483
|
): TemplateResult {
|
|
483
484
|
const isSelected =
|
|
484
485
|
options?.selected ?? this.finalizedSortField === sortField;
|
|
@@ -758,7 +759,7 @@ export class SortFilterBar
|
|
|
758
759
|
/** Toggles the current sort direction between 'asc' and 'desc' */
|
|
759
760
|
private toggleSortDirection() {
|
|
760
761
|
this.setSortDirection(
|
|
761
|
-
this.finalizedSortDirection === 'desc' ? 'asc' : 'desc'
|
|
762
|
+
this.finalizedSortDirection === 'desc' ? 'asc' : 'desc'
|
|
762
763
|
);
|
|
763
764
|
}
|
|
764
765
|
|
|
@@ -895,14 +896,14 @@ export class SortFilterBar
|
|
|
895
896
|
}
|
|
896
897
|
|
|
897
898
|
private titleLetterChanged(
|
|
898
|
-
e: CustomEvent<{ selectedLetter: string | undefined }
|
|
899
|
+
e: CustomEvent<{ selectedLetter: string | undefined }>
|
|
899
900
|
) {
|
|
900
901
|
this.selectedTitleFilter = e.detail.selectedLetter ?? null;
|
|
901
902
|
this.emitTitleLetterChangedEvent();
|
|
902
903
|
}
|
|
903
904
|
|
|
904
905
|
private creatorLetterChanged(
|
|
905
|
-
e: CustomEvent<{ selectedLetter: string | undefined }
|
|
906
|
+
e: CustomEvent<{ selectedLetter: string | undefined }>
|
|
906
907
|
) {
|
|
907
908
|
this.selectedCreatorFilter = e.detail.selectedLetter ?? null;
|
|
908
909
|
this.emitCreatorLetterChangedEvent();
|
|
@@ -913,7 +914,7 @@ export class SortFilterBar
|
|
|
913
914
|
'titleLetterChanged',
|
|
914
915
|
{
|
|
915
916
|
detail: { selectedLetter: this.selectedTitleFilter },
|
|
916
|
-
}
|
|
917
|
+
}
|
|
917
918
|
);
|
|
918
919
|
this.dispatchEvent(event);
|
|
919
920
|
}
|
|
@@ -923,7 +924,7 @@ export class SortFilterBar
|
|
|
923
924
|
'creatorLetterChanged',
|
|
924
925
|
{
|
|
925
926
|
detail: { selectedLetter: this.selectedCreatorFilter },
|
|
926
|
-
}
|
|
927
|
+
}
|
|
927
928
|
);
|
|
928
929
|
this.dispatchEvent(event);
|
|
929
930
|
}
|
|
@@ -87,7 +87,7 @@ export class AccountTile extends BaseTileComponent {
|
|
|
87
87
|
e.preventDefault();
|
|
88
88
|
const event = new CustomEvent<{ x: number; y: number }>(
|
|
89
89
|
'infoButtonPressed',
|
|
90
|
-
{ detail: { x: e.clientX, y: e.clientY } }
|
|
90
|
+
{ detail: { x: e.clientX, y: e.clientY } }
|
|
91
91
|
);
|
|
92
92
|
this.dispatchEvent(event);
|
|
93
93
|
}
|
|
@@ -99,7 +99,7 @@ export class CollectionTile extends BaseTileComponent {
|
|
|
99
99
|
e.preventDefault();
|
|
100
100
|
const event = new CustomEvent<{ x: number; y: number }>(
|
|
101
101
|
'infoButtonPressed',
|
|
102
|
-
{ detail: { x: e.clientX, y: e.clientY } }
|
|
102
|
+
{ detail: { x: e.clientX, y: e.clientY } }
|
|
103
103
|
);
|
|
104
104
|
this.dispatchEvent(event);
|
|
105
105
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
1
2
|
import { css, CSSResultGroup, html, nothing, TemplateResult } from 'lit';
|
|
2
3
|
import { customElement, property } from 'lit/decorators.js';
|
|
3
4
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
@@ -201,13 +202,12 @@ export class ItemTile extends BaseTileComponent {
|
|
|
201
202
|
<ul class="capture-dates">
|
|
202
203
|
${map(
|
|
203
204
|
this.model.captureDates,
|
|
204
|
-
date =>
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
</li>`,
|
|
205
|
+
date => html`<li>
|
|
206
|
+
${this.displayValueProvider.webArchivesCaptureLink(
|
|
207
|
+
this.model!.title,
|
|
208
|
+
date
|
|
209
|
+
)}
|
|
210
|
+
</li>`
|
|
211
211
|
)}
|
|
212
212
|
</ul>
|
|
213
213
|
`;
|
|
@@ -215,7 +215,7 @@ export class ItemTile extends BaseTileComponent {
|
|
|
215
215
|
|
|
216
216
|
private get isSortedByDate(): boolean {
|
|
217
217
|
return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes(
|
|
218
|
-
this.effectiveSort?.field as string
|
|
218
|
+
this.effectiveSort?.field as string
|
|
219
219
|
);
|
|
220
220
|
}
|
|
221
221
|
|
|
@@ -234,7 +234,7 @@ export class ItemTile extends BaseTileComponent {
|
|
|
234
234
|
e.preventDefault();
|
|
235
235
|
const event = new CustomEvent<{ x: number; y: number }>(
|
|
236
236
|
'infoButtonPressed',
|
|
237
|
-
{ detail: { x: e.clientX, y: e.clientY } }
|
|
237
|
+
{ detail: { x: e.clientX, y: e.clientY } }
|
|
238
238
|
);
|
|
239
239
|
this.dispatchEvent(event);
|
|
240
240
|
}
|
|
@@ -29,7 +29,7 @@ export class TileStats extends LitElement {
|
|
|
29
29
|
const formattedReviewCount = formatCount(
|
|
30
30
|
this.commentCount,
|
|
31
31
|
'short',
|
|
32
|
-
'short'
|
|
32
|
+
'short'
|
|
33
33
|
);
|
|
34
34
|
|
|
35
35
|
const uploadsOrViewsTitle =
|
|
@@ -57,10 +57,10 @@ export class TileStats extends LitElement {
|
|
|
57
57
|
</span>
|
|
58
58
|
${formatCount(
|
|
59
59
|
this.mediatype === 'account'
|
|
60
|
-
?
|
|
61
|
-
:
|
|
62
|
-
'short',
|
|
60
|
+
? this.itemCount ?? 0
|
|
61
|
+
: this.viewCount ?? 0,
|
|
63
62
|
'short',
|
|
63
|
+
'short'
|
|
64
64
|
)}
|
|
65
65
|
</p>
|
|
66
66
|
</li>
|
|
@@ -151,7 +151,7 @@ export class HoverPaneController implements HoverPaneControllerInterface {
|
|
|
151
151
|
HoverPaneProviderInterface &
|
|
152
152
|
HTMLElement,
|
|
153
153
|
/** Options for adjusting the hover pane behavior (offsets, delays, etc.) */
|
|
154
|
-
options: HoverPaneControllerOptions = {}
|
|
154
|
+
options: HoverPaneControllerOptions = {}
|
|
155
155
|
) {
|
|
156
156
|
this.mobileBreakpoint = options.mobileBreakpoint ?? this.mobileBreakpoint;
|
|
157
157
|
this.offsetX = options.offsetX ?? this.offsetX;
|
|
@@ -26,7 +26,7 @@ export class TileHoverPane extends LitElement {
|
|
|
26
26
|
|
|
27
27
|
@property({ type: Number }) mobileBreakpoint?: number;
|
|
28
28
|
|
|
29
|
-
@property({ type: Number }) currentWidth?:
|
|
29
|
+
@property({ type: Number }) currentWidth?: Number;
|
|
30
30
|
|
|
31
31
|
@property({ type: Object })
|
|
32
32
|
collectionTitles?: CollectionTitles;
|
|
@@ -95,9 +95,7 @@ export class TileHoverPane extends LitElement {
|
|
|
95
95
|
visibility: hidden;
|
|
96
96
|
opacity: 0;
|
|
97
97
|
transform: translateY(8px);
|
|
98
|
-
transition:
|
|
99
|
-
opacity 0.1s ease-in,
|
|
100
|
-
transform 0.1s ease-in;
|
|
98
|
+
transition: opacity 0.1s ease-in, transform 0.1s ease-in;
|
|
101
99
|
--image-width: auto;
|
|
102
100
|
}
|
|
103
101
|
|
package/src/tiles/item-image.ts
CHANGED
|
@@ -73,7 +73,7 @@ export class TileListCompact extends BaseTileComponent {
|
|
|
73
73
|
|
|
74
74
|
return this.displayValueProvider.itemPageUrl(
|
|
75
75
|
this.model.identifier,
|
|
76
|
-
this.model.mediatype === 'collection'
|
|
76
|
+
this.model.mediatype === 'collection'
|
|
77
77
|
);
|
|
78
78
|
}
|
|
79
79
|
|
|
@@ -155,7 +155,7 @@ export class TileListCompact extends BaseTileComponent {
|
|
|
155
155
|
|
|
156
156
|
private get isSortedByDate(): boolean {
|
|
157
157
|
return ['date', 'reviewdate', 'addeddate', 'publicdate'].includes(
|
|
158
|
-
this.effectiveSort?.field as string
|
|
158
|
+
this.effectiveSort?.field as string
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -90,7 +90,7 @@ export class TileList extends BaseTileComponent {
|
|
|
90
90
|
const isCollection = this.model.mediatype === 'collection';
|
|
91
91
|
const href = this.displayValueProvider.itemPageUrl(
|
|
92
92
|
this.model.identifier,
|
|
93
|
-
isCollection
|
|
93
|
+
isCollection
|
|
94
94
|
);
|
|
95
95
|
|
|
96
96
|
return html`<a href=${href}>
|
|
@@ -149,7 +149,7 @@ export class TileList extends BaseTileComponent {
|
|
|
149
149
|
: this.detailsLink(
|
|
150
150
|
this.model.identifier,
|
|
151
151
|
this.model.title,
|
|
152
|
-
this.model.mediatype === 'collection'
|
|
152
|
+
this.model.mediatype === 'collection'
|
|
153
153
|
);
|
|
154
154
|
}
|
|
155
155
|
|
|
@@ -203,7 +203,7 @@ export class TileList extends BaseTileComponent {
|
|
|
203
203
|
${this.labelTemplate(msg('By'))}
|
|
204
204
|
${join(
|
|
205
205
|
map(this.model.creators, id => this.searchLink('creator', id)),
|
|
206
|
-
', '
|
|
206
|
+
', '
|
|
207
207
|
)}
|
|
208
208
|
</div>
|
|
209
209
|
`;
|
|
@@ -233,7 +233,7 @@ export class TileList extends BaseTileComponent {
|
|
|
233
233
|
) {
|
|
234
234
|
return this.metadataTemplate(
|
|
235
235
|
formatDate(this.date, 'long'),
|
|
236
|
-
this.displayValueProvider.dateLabel
|
|
236
|
+
this.displayValueProvider.dateLabel
|
|
237
237
|
);
|
|
238
238
|
}
|
|
239
239
|
return nothing;
|
|
@@ -253,7 +253,7 @@ export class TileList extends BaseTileComponent {
|
|
|
253
253
|
|
|
254
254
|
return this.metadataTemplate(
|
|
255
255
|
`${formatCount(viewCount, this.formatSize)}`,
|
|
256
|
-
msg('Views')
|
|
256
|
+
msg('Views')
|
|
257
257
|
);
|
|
258
258
|
}
|
|
259
259
|
|
|
@@ -274,7 +274,7 @@ export class TileList extends BaseTileComponent {
|
|
|
274
274
|
${this.labelTemplate(msg('Topics'))}
|
|
275
275
|
${join(
|
|
276
276
|
map(this.model.subjects, id => this.searchLink('subject', id)),
|
|
277
|
-
', '
|
|
277
|
+
', '
|
|
278
278
|
)}
|
|
279
279
|
</div>
|
|
280
280
|
`;
|
|
@@ -296,10 +296,10 @@ export class TileList extends BaseTileComponent {
|
|
|
296
296
|
return this.metadataTemplate(
|
|
297
297
|
// Sanitize away any HTML tags and convert line breaks to spaces.
|
|
298
298
|
unsafeHTML(
|
|
299
|
-
DOMPurify.sanitize(this.model?.description?.replace(/\n/g, ' ') ?? '')
|
|
299
|
+
DOMPurify.sanitize(this.model?.description?.replace(/\n/g, ' ') ?? '')
|
|
300
300
|
),
|
|
301
301
|
'',
|
|
302
|
-
'description'
|
|
302
|
+
'description'
|
|
303
303
|
);
|
|
304
304
|
}
|
|
305
305
|
|
|
@@ -340,20 +340,19 @@ export class TileList extends BaseTileComponent {
|
|
|
340
340
|
<ul class="capture-dates">
|
|
341
341
|
${map(
|
|
342
342
|
this.model.captureDates,
|
|
343
|
-
date =>
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
</li>`,
|
|
343
|
+
date => html`<li>
|
|
344
|
+
${this.displayValueProvider.webArchivesCaptureLink(
|
|
345
|
+
this.model!.title,
|
|
346
|
+
date
|
|
347
|
+
)}
|
|
348
|
+
</li>`
|
|
350
349
|
)}
|
|
351
350
|
</ul>
|
|
352
351
|
`;
|
|
353
352
|
}
|
|
354
353
|
|
|
355
354
|
// Utility functions
|
|
356
|
-
// eslint-disable-next-line
|
|
355
|
+
// eslint-disable-next-line default-param-last
|
|
357
356
|
private metadataTemplate(text: any, label = '', id?: string) {
|
|
358
357
|
if (!text) return nothing;
|
|
359
358
|
return html`
|
|
@@ -376,25 +375,28 @@ export class TileList extends BaseTileComponent {
|
|
|
376
375
|
const query = encodeURIComponent(`${field}:"${searchTerm}"`);
|
|
377
376
|
// No whitespace after closing tag
|
|
378
377
|
// Note: single ' for href='' to wrap " in query var gets changed back by yarn format
|
|
378
|
+
|
|
379
|
+
/* eslint-disable lit/no-invalid-html */
|
|
379
380
|
return html`<a
|
|
380
381
|
href="${this.baseNavigationUrl}/search?query=${query}"
|
|
381
382
|
rel="nofollow"
|
|
382
383
|
>
|
|
383
384
|
${DOMPurify.sanitize(searchTerm)}</a
|
|
384
385
|
>`;
|
|
386
|
+
/* eslint-enable lit/no-invalid-html */
|
|
385
387
|
}
|
|
386
388
|
|
|
387
389
|
private detailsLink(
|
|
388
390
|
identifier?: string,
|
|
389
391
|
text?: string,
|
|
390
|
-
isCollection = false
|
|
392
|
+
isCollection = false
|
|
391
393
|
): TemplateResult | typeof nothing {
|
|
392
394
|
if (!identifier) return nothing;
|
|
393
395
|
|
|
394
396
|
const linkText = text ?? identifier;
|
|
395
397
|
const linkHref = this.displayValueProvider.itemPageUrl(
|
|
396
398
|
identifier,
|
|
397
|
-
isCollection
|
|
399
|
+
isCollection
|
|
398
400
|
);
|
|
399
401
|
|
|
400
402
|
return html`<a href=${linkHref}> ${DOMPurify.sanitize(linkText)} </a>`;
|
|
@@ -415,7 +417,7 @@ export class TileList extends BaseTileComponent {
|
|
|
415
417
|
default:
|
|
416
418
|
return this.displayValueProvider.itemPageUrl(
|
|
417
419
|
this.model.mediatype,
|
|
418
|
-
true
|
|
420
|
+
true
|
|
419
421
|
);
|
|
420
422
|
}
|
|
421
423
|
}
|
|
@@ -445,8 +447,8 @@ export class TileList extends BaseTileComponent {
|
|
|
445
447
|
this.detailsLink(
|
|
446
448
|
collection,
|
|
447
449
|
this.collectionTitles?.get(collection) ?? collection,
|
|
448
|
-
true
|
|
449
|
-
)
|
|
450
|
+
true
|
|
451
|
+
)
|
|
450
452
|
);
|
|
451
453
|
}
|
|
452
454
|
}
|
|
@@ -662,7 +664,7 @@ export class TileList extends BaseTileComponent {
|
|
|
662
664
|
/*
|
|
663
665
|
* With the exception of the title line, allow these to wrap if
|
|
664
666
|
* the space becomes too small to accommodate them together.
|
|
665
|
-
*
|
|
667
|
+
*
|
|
666
668
|
* The title line is excluded because it contains the mediatype icon
|
|
667
669
|
* which we don't want to wrap.
|
|
668
670
|
*/
|
|
@@ -60,7 +60,7 @@ export class TileDispatcher
|
|
|
60
60
|
@property({ type: Boolean }) enableHoverPane = false;
|
|
61
61
|
|
|
62
62
|
@property({ type: String }) manageCheckTitle = msg(
|
|
63
|
-
'Remove this item from the list'
|
|
63
|
+
'Remove this item from the list'
|
|
64
64
|
);
|
|
65
65
|
|
|
66
66
|
private hoverPaneController?: HoverPaneControllerInterface;
|
|
@@ -155,7 +155,7 @@ export class TileDispatcher
|
|
|
155
155
|
|
|
156
156
|
return this.displayValueProvider.itemPageUrl(
|
|
157
157
|
this.model.identifier,
|
|
158
|
-
this.model.mediatype === 'collection'
|
|
158
|
+
this.model.mediatype === 'collection'
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
161
|
|
|
@@ -229,7 +229,7 @@ export class TileDispatcher
|
|
|
229
229
|
updated(props: PropertyValues) {
|
|
230
230
|
if (props.has('resizeObserver')) {
|
|
231
231
|
const previousObserver = props.get(
|
|
232
|
-
'resizeObserver'
|
|
232
|
+
'resizeObserver'
|
|
233
233
|
) as SharedResizeObserverInterface;
|
|
234
234
|
this.stopResizeObservation(previousObserver);
|
|
235
235
|
this.startResizeObservation();
|
|
@@ -247,7 +247,7 @@ export class TileDispatcher
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
this.dispatchEvent(
|
|
250
|
-
new CustomEvent('resultSelected', { detail: this.model })
|
|
250
|
+
new CustomEvent('resultSelected', { detail: this.model })
|
|
251
251
|
);
|
|
252
252
|
}
|
|
253
253
|
|
|
@@ -263,7 +263,7 @@ export class TileDispatcher
|
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
private tileInfoButtonPressed(
|
|
266
|
-
e: CustomEvent<{ x: number; y: number }
|
|
266
|
+
e: CustomEvent<{ x: number; y: number }>
|
|
267
267
|
): void {
|
|
268
268
|
this.hoverPaneController?.toggleHoverPane({
|
|
269
269
|
coords: e.detail,
|
|
@@ -26,7 +26,7 @@ export class TileDisplayValueProvider {
|
|
|
26
26
|
collectionPagePath?: string;
|
|
27
27
|
sortParam?: SortParam;
|
|
28
28
|
creatorFilter?: string;
|
|
29
|
-
} = {}
|
|
29
|
+
} = {}
|
|
30
30
|
) {
|
|
31
31
|
this.model = options.model;
|
|
32
32
|
this.baseNavigationUrl = options.baseNavigationUrl;
|
|
@@ -55,7 +55,7 @@ export class TileDisplayValueProvider {
|
|
|
55
55
|
.normalize('NFD')
|
|
56
56
|
.replace(/[^A-Z]+/gi, '')
|
|
57
57
|
.toUpperCase()
|
|
58
|
-
.startsWith(firstLetter)
|
|
58
|
+
.startsWith(firstLetter)
|
|
59
59
|
);
|
|
60
60
|
}
|
|
61
61
|
|
|
@@ -98,7 +98,7 @@ export class TileDisplayValueProvider {
|
|
|
98
98
|
*/
|
|
99
99
|
itemPageUrl(
|
|
100
100
|
identifier?: string,
|
|
101
|
-
isCollection = false
|
|
101
|
+
isCollection = false
|
|
102
102
|
): string | typeof nothing {
|
|
103
103
|
if (!identifier || this.baseNavigationUrl == null) return nothing;
|
|
104
104
|
const basePath = isCollection ? this.collectionPagePath : '/details/';
|
|
@@ -115,7 +115,7 @@ export class TileDisplayValueProvider {
|
|
|
115
115
|
.replace(/[TZ:-]/g, '')
|
|
116
116
|
.replace(/\..*/, '');
|
|
117
117
|
const captureHref = `https://web.archive.org/web/${captureDateStr}/${encodeURIComponent(
|
|
118
|
-
url
|
|
118
|
+
url
|
|
119
119
|
)}`;
|
|
120
120
|
const captureText = formatDate(date, 'long');
|
|
121
121
|
|