@internetarchive/collection-browser 2.7.12 → 2.7.13
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/.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 -13
- package/dist/src/app-root.d.ts +107 -107
- package/dist/src/app-root.js +531 -531
- 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/collection-browser.d.ts +606 -606
- package/dist/src/collection-browser.js +1677 -1677
- 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-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- package/dist/src/collection-facets/facets-template.d.ts +13 -13
- package/dist/src/collection-facets/facets-template.js +44 -44
- package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
- package/dist/src/collection-facets/more-facets-content.js +407 -407
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +196 -196
- 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/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/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/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 -240
- 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-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-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/toggle-switch.d.ts +41 -41
- package/dist/src/collection-facets/toggle-switch.js +94 -94
- package/dist/src/collection-facets.d.ts +103 -103
- package/dist/src/collection-facets.js +522 -522
- 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.d.ts +377 -377
- package/dist/src/data-source/collection-browser-data-source.js +1004 -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 +79 -79
- package/dist/src/expanded-date-picker.d.ts +43 -43
- package/dist/src/expanded-date-picker.js +109 -109
- 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-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/manage/manage-bar.d.ts +58 -58
- package/dist/src/manage/manage-bar.js +159 -159
- 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/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +91 -91
- package/dist/src/models.d.ts +228 -228
- package/dist/src/models.js +401 -401
- package/dist/src/restoration-state-handler.d.ts +70 -70
- package/dist/src/restoration-state-handler.js +363 -363
- 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.d.ts +21 -21
- package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
- 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 -697
- 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/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- 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/collection-tile.d.ts +15 -15
- package/dist/src/tiles/grid/collection-tile.js +80 -80
- package/dist/src/tiles/grid/item-tile.d.ts +34 -34
- package/dist/src/tiles/grid/item-tile.js +158 -158
- 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/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 +53 -53
- 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/tile-hover-pane.d.ts +18 -18
- package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
- package/dist/src/tiles/image-block.d.ts +18 -18
- package/dist/src/tiles/image-block.js +89 -89
- package/dist/src/tiles/item-image.d.ts +39 -39
- package/dist/src/tiles/item-image.js +154 -154
- 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.d.ts +19 -19
- package/dist/src/tiles/list/tile-list-compact.js +122 -122
- package/dist/src/tiles/list/tile-list.d.ts +54 -54
- package/dist/src/tiles/list/tile-list.js +323 -323
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- 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/text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/text-overlay.js +31 -31
- package/dist/src/tiles/review-block.d.ts +12 -12
- package/dist/src/tiles/review-block.js +56 -56
- 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/tile-dispatcher.d.ts +64 -64
- package/dist/src/tiles/tile-dispatcher.js +230 -230
- 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/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/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +76 -76
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +27 -27
- 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/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 -15
- package/dist/src/utils/resolve-mediatype.d.ts +8 -8
- package/dist/src/utils/resolve-mediatype.js +23 -23
- 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 +1308 -1308
- package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
- package/dist/test/collection-facets/facet-row.test.js +227 -227
- 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/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +141 -141
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
- package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +73 -73
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +690 -690
- 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/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +63 -63
- package/dist/test/expanded-date-picker.test.d.ts +1 -1
- package/dist/test/expanded-date-picker.test.js +95 -95
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +107 -107
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +85 -85
- package/dist/test/manage/manage-bar.test.d.ts +2 -2
- package/dist/test/manage/manage-bar.test.js +100 -100
- package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
- package/dist/test/manage/remove-items-modal-content.test.js +45 -45
- 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-service.d.ts +15 -15
- package/dist/test/mocks/mock-search-service.js +54 -54
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +270 -270
- package/dist/test/review-block.test.d.ts +1 -1
- package/dist/test/review-block.test.js +44 -44
- 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.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
- 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 -426
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +38 -38
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -57
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +81 -81
- package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +76 -76
- package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +73 -73
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +312 -312
- package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +51 -51
- 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/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +297 -297
- 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-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-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +30 -30
- 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/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +1 -1
- package/renovate.json +6 -6
- package/src/data-source/collection-browser-data-source.ts +5 -1
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,223 +1,223 @@
|
|
|
1
|
-
import { LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
-
import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
|
|
3
|
-
import '@internetarchive/ia-dropdown';
|
|
4
|
-
import type { SortDirection } from '@internetarchive/search-service';
|
|
5
|
-
import { CollectionDisplayMode, PrefixFilterCounts, PrefixFilterType, SortField } from '../models';
|
|
6
|
-
import './alpha-bar';
|
|
7
|
-
declare type AlphaSelector = 'creator' | 'title';
|
|
8
|
-
export declare class SortFilterBar extends LitElement implements SharedResizeObserverResizeHandlerInterface {
|
|
9
|
-
/** Which display mode the tiles are being rendered with (grid/list-detail/list-compact) */
|
|
10
|
-
displayMode?: CollectionDisplayMode;
|
|
11
|
-
/** The default sort direction to use if none is set */
|
|
12
|
-
defaultSortDirection: SortDirection | null;
|
|
13
|
-
/** The default sort field to use if none is set */
|
|
14
|
-
defaultSortField: Exclude<SortField, SortField.default>;
|
|
15
|
-
/** The current sort direction (asc/desc), or null if none is set */
|
|
16
|
-
sortDirection: SortDirection | null;
|
|
17
|
-
/** The field currently being sorted on (e.g., 'title'). Defaults to relevance. */
|
|
18
|
-
selectedSort: SortField;
|
|
19
|
-
/** The currently selected title letter filter, or null if none is set */
|
|
20
|
-
selectedTitleFilter: string | null;
|
|
21
|
-
/** The currently selected creator letter filter, or null if none is set */
|
|
22
|
-
selectedCreatorFilter: string | null;
|
|
23
|
-
/** Whether to show the Relevance sort option (default `true`) */
|
|
24
|
-
showRelevance: boolean;
|
|
25
|
-
/** Whether to show the Date Favorited sort option instead of Date Published/Archived/Reviewed (default `false`) */
|
|
26
|
-
showDateFavorited: boolean;
|
|
27
|
-
/** Whether to replace the default sort options with a slot for customization (default `false`) */
|
|
28
|
-
enableSortOptionsSlot: boolean;
|
|
29
|
-
/** Whether to suppress showing the three display mode options on the right of the bar (default `false`) */
|
|
30
|
-
suppressDisplayModes: boolean;
|
|
31
|
-
/** Maps of result counts for letters on the alphabet bar, for each letter filter type */
|
|
32
|
-
prefixFilterCountMap?: Record<PrefixFilterType, PrefixFilterCounts>;
|
|
33
|
-
resizeObserver?: SharedResizeObserverInterface;
|
|
34
|
-
/**
|
|
35
|
-
* The Views sort option that was most recently selected (or the default, if none has been selected yet)
|
|
36
|
-
*/
|
|
37
|
-
private lastSelectedViewSort;
|
|
38
|
-
/**
|
|
39
|
-
* The Date sort option that was most recently selected (or the default, if none has been selected yet)
|
|
40
|
-
*/
|
|
41
|
-
private lastSelectedDateSort;
|
|
42
|
-
/**
|
|
43
|
-
* Which of the alphabet bars (title/creator) should be shown, or null if one
|
|
44
|
-
* should not currently be rendered.
|
|
45
|
-
*/
|
|
46
|
-
alphaSelectorVisible: AlphaSelector | null;
|
|
47
|
-
/**
|
|
48
|
-
* Whether the transparent backdrop to catch clicks outside the dropdown menu
|
|
49
|
-
* should be rendered.
|
|
50
|
-
*/
|
|
51
|
-
dropdownBackdropVisible: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* The width of the desktop view sort option container, updated upon each resize.
|
|
54
|
-
* Used for dynamically determining whether to use desktop or mobile view.
|
|
55
|
-
*/
|
|
56
|
-
desktopSortContainerWidth: number;
|
|
57
|
-
/**
|
|
58
|
-
* The width of the full sort bar, updated upon each resize.
|
|
59
|
-
* Used for dynamically determining whether to use desktop or mobile view.
|
|
60
|
-
*/
|
|
61
|
-
selectorBarContainerWidth: number;
|
|
62
|
-
/**
|
|
63
|
-
* The container for all the desktop view's sort options.
|
|
64
|
-
* Used for dynamically determining whether to use desktop or mobile view.
|
|
65
|
-
*/
|
|
66
|
-
private desktopSortContainer;
|
|
67
|
-
/**
|
|
68
|
-
* The container for the full sort bar.
|
|
69
|
-
* Used for dynamically determining whether to use desktop or mobile view.
|
|
70
|
-
*/
|
|
71
|
-
private sortSelectorContainer;
|
|
72
|
-
/** The dropdown component containing options for weekly and all-time views */
|
|
73
|
-
private viewsDropdown;
|
|
74
|
-
/** The dropdown component containing the four date options */
|
|
75
|
-
private dateDropdown;
|
|
76
|
-
/** The single, consolidated dropdown component shown in mobile view */
|
|
77
|
-
private mobileDropdown;
|
|
78
|
-
render(): TemplateResult<1>;
|
|
79
|
-
willUpdate(changed: PropertyValues): void;
|
|
80
|
-
updated(changed: PropertyValues): void;
|
|
81
|
-
private setupEscapeListeners;
|
|
82
|
-
private boundSortBarSelectorEscapeListener;
|
|
83
|
-
connectedCallback(): void;
|
|
84
|
-
disconnectedCallback(): void;
|
|
85
|
-
private disconnectResizeObserver;
|
|
86
|
-
private setupResizeObserver;
|
|
87
|
-
handleResize(entry: ResizeObserverEntry): void;
|
|
88
|
-
/**
|
|
89
|
-
* Whether to show the mobile sort bar because there is not enough space
|
|
90
|
-
* for the desktop sort bar.
|
|
91
|
-
*/
|
|
92
|
-
private get mobileSelectorVisible();
|
|
93
|
-
/**
|
|
94
|
-
* Template to render the alphabet bar, or `nothing` if it should not be rendered
|
|
95
|
-
* for the current sort
|
|
96
|
-
*/
|
|
97
|
-
private get alphaBarTemplate();
|
|
98
|
-
/** Template to render the sort direction toggle button */
|
|
99
|
-
private get sortDirectionSelectorTemplate();
|
|
100
|
-
/** Template to render the sort direction button's icon in the correct current state */
|
|
101
|
-
private get sortDirectionIcon();
|
|
102
|
-
/** The template to render all the sort options in desktop view */
|
|
103
|
-
private get desktopSortSelectorTemplate();
|
|
104
|
-
/** The template to render all the sort options in mobile view */
|
|
105
|
-
private get mobileSortSelectorTemplate();
|
|
106
|
-
/**
|
|
107
|
-
* This generates each of the non-dropdown sort option links.
|
|
108
|
-
*
|
|
109
|
-
* It manages the display value and the selected state of the option.
|
|
110
|
-
*
|
|
111
|
-
* @param sortField
|
|
112
|
-
* @param options {
|
|
113
|
-
* onClick?: (e: Event) => void; If this is provided, it will also be called when the option is clicked.
|
|
114
|
-
* displayName?: TemplateResult; The name to display for the option. Defaults to the sortField display name.
|
|
115
|
-
* selected?: boolean; true if the option is selected. Defaults to the selectedSort === sortField.
|
|
116
|
-
* }
|
|
117
|
-
* @returns
|
|
118
|
-
*/
|
|
119
|
-
private getSortDisplayOption;
|
|
120
|
-
/**
|
|
121
|
-
* Generates a dropdown component containing multiple grouped sort options.
|
|
122
|
-
*
|
|
123
|
-
* @param options.displayName The name to use for the dropdown's visible label
|
|
124
|
-
* @param options.id The id to apply to the dropdown element
|
|
125
|
-
* @param options.dropdownOptions An array of option objects used to populate the dropdown
|
|
126
|
-
* @param options.selectedOption The id of the option that should be initially selected
|
|
127
|
-
* @param options.selected A boolean indicating whether this dropdown should use its
|
|
128
|
-
* selected appearance
|
|
129
|
-
* @param options.onOptionSelected A handler for optionSelected events coming from the dropdown
|
|
130
|
-
* @param options.onDropdownClick A handler for click events on the dropdown
|
|
131
|
-
* @param options.onLabelInteraction A handler for click events and Enter/Space keydown events
|
|
132
|
-
* on the dropdown's label
|
|
133
|
-
*/
|
|
134
|
-
private getSortDropdown;
|
|
135
|
-
/** Generates a single dropdown option object for the given sort field */
|
|
136
|
-
private getDropdownOption;
|
|
137
|
-
/** Handler for when any sort dropdown option is selected */
|
|
138
|
-
private dropdownOptionSelected;
|
|
139
|
-
/** The template to render for the views dropdown */
|
|
140
|
-
private get viewsDropdownTemplate();
|
|
141
|
-
/** The template to render for the date dropdown */
|
|
142
|
-
private get dateDropdownTemplate();
|
|
143
|
-
/** Handler for when a new mobile sort dropdown option is selected */
|
|
144
|
-
private mobileSortChanged;
|
|
145
|
-
/** Template for rendering the three display mode options */
|
|
146
|
-
/** Added data-testid for Playwright testing * */
|
|
147
|
-
private get displayOptionTemplate();
|
|
148
|
-
/**
|
|
149
|
-
* Template for rendering the transparent backdrop to capture clicks outside the
|
|
150
|
-
* dropdown menu while it is open.
|
|
151
|
-
*/
|
|
152
|
-
private get dropdownBackdrop();
|
|
153
|
-
/** Closes all of the sorting dropdown components' menus */
|
|
154
|
-
private closeDropdowns;
|
|
155
|
-
private selectDropdownSortField;
|
|
156
|
-
private clearAlphaBarFilters;
|
|
157
|
-
private setSortDirection;
|
|
158
|
-
/** Toggles the current sort direction between 'asc' and 'desc' */
|
|
159
|
-
private toggleSortDirection;
|
|
160
|
-
private handleSortDirectionClicked;
|
|
161
|
-
private setSelectedSort;
|
|
162
|
-
/** The current sort field, or the default one if no explicit sort is set */
|
|
163
|
-
private get finalizedSortField();
|
|
164
|
-
/** The current sort direction, or the default one if no explicit direction is set */
|
|
165
|
-
private get finalizedSortDirection();
|
|
166
|
-
/** Whether the sort direction button should be enabled for the current sort */
|
|
167
|
-
private get canChangeSortDirection();
|
|
168
|
-
/**
|
|
169
|
-
* There are four date sort options.
|
|
170
|
-
*
|
|
171
|
-
* This checks to see if the current sort is one of them.
|
|
172
|
-
*
|
|
173
|
-
* @readonly
|
|
174
|
-
* @private
|
|
175
|
-
* @type {boolean}
|
|
176
|
-
* @memberof SortFilterBar
|
|
177
|
-
*/
|
|
178
|
-
private get dateOptionSelected();
|
|
179
|
-
/**
|
|
180
|
-
* There are two view sort options.
|
|
181
|
-
*
|
|
182
|
-
* This checks to see if the current sort is one of them.
|
|
183
|
-
*
|
|
184
|
-
* @readonly
|
|
185
|
-
* @private
|
|
186
|
-
* @type {boolean}
|
|
187
|
-
* @memberof SortFilterBar
|
|
188
|
-
*/
|
|
189
|
-
private get viewOptionSelected();
|
|
190
|
-
/**
|
|
191
|
-
* The default field for the date sort dropdown.
|
|
192
|
-
* This is Date Favorited when that option is available, or Date Published otherwise.
|
|
193
|
-
*/
|
|
194
|
-
private get defaultDateSortField();
|
|
195
|
-
/**
|
|
196
|
-
* The display name of the last selected date field
|
|
197
|
-
*
|
|
198
|
-
* @readonly
|
|
199
|
-
* @private
|
|
200
|
-
* @type {string}
|
|
201
|
-
* @memberof SortFilterBar
|
|
202
|
-
*/
|
|
203
|
-
private get dateSortDisplayName();
|
|
204
|
-
/**
|
|
205
|
-
* The display name of the last selected view field
|
|
206
|
-
*
|
|
207
|
-
* @readonly
|
|
208
|
-
* @private
|
|
209
|
-
* @type {string}
|
|
210
|
-
* @memberof SortFilterBar
|
|
211
|
-
*/
|
|
212
|
-
private get viewSortDisplayName();
|
|
213
|
-
private get titleSelectorBar();
|
|
214
|
-
private get creatorSelectorBar();
|
|
215
|
-
private titleLetterChanged;
|
|
216
|
-
private creatorLetterChanged;
|
|
217
|
-
private emitTitleLetterChangedEvent;
|
|
218
|
-
private emitCreatorLetterChangedEvent;
|
|
219
|
-
private displayModeChanged;
|
|
220
|
-
private emitSortChangedEvent;
|
|
221
|
-
static get styles(): import("lit").CSSResult[];
|
|
222
|
-
}
|
|
223
|
-
export {};
|
|
1
|
+
import { LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
import type { SharedResizeObserverInterface, SharedResizeObserverResizeHandlerInterface } from '@internetarchive/shared-resize-observer';
|
|
3
|
+
import '@internetarchive/ia-dropdown';
|
|
4
|
+
import type { SortDirection } from '@internetarchive/search-service';
|
|
5
|
+
import { CollectionDisplayMode, PrefixFilterCounts, PrefixFilterType, SortField } from '../models';
|
|
6
|
+
import './alpha-bar';
|
|
7
|
+
declare type AlphaSelector = 'creator' | 'title';
|
|
8
|
+
export declare class SortFilterBar extends LitElement implements SharedResizeObserverResizeHandlerInterface {
|
|
9
|
+
/** Which display mode the tiles are being rendered with (grid/list-detail/list-compact) */
|
|
10
|
+
displayMode?: CollectionDisplayMode;
|
|
11
|
+
/** The default sort direction to use if none is set */
|
|
12
|
+
defaultSortDirection: SortDirection | null;
|
|
13
|
+
/** The default sort field to use if none is set */
|
|
14
|
+
defaultSortField: Exclude<SortField, SortField.default>;
|
|
15
|
+
/** The current sort direction (asc/desc), or null if none is set */
|
|
16
|
+
sortDirection: SortDirection | null;
|
|
17
|
+
/** The field currently being sorted on (e.g., 'title'). Defaults to relevance. */
|
|
18
|
+
selectedSort: SortField;
|
|
19
|
+
/** The currently selected title letter filter, or null if none is set */
|
|
20
|
+
selectedTitleFilter: string | null;
|
|
21
|
+
/** The currently selected creator letter filter, or null if none is set */
|
|
22
|
+
selectedCreatorFilter: string | null;
|
|
23
|
+
/** Whether to show the Relevance sort option (default `true`) */
|
|
24
|
+
showRelevance: boolean;
|
|
25
|
+
/** Whether to show the Date Favorited sort option instead of Date Published/Archived/Reviewed (default `false`) */
|
|
26
|
+
showDateFavorited: boolean;
|
|
27
|
+
/** Whether to replace the default sort options with a slot for customization (default `false`) */
|
|
28
|
+
enableSortOptionsSlot: boolean;
|
|
29
|
+
/** Whether to suppress showing the three display mode options on the right of the bar (default `false`) */
|
|
30
|
+
suppressDisplayModes: boolean;
|
|
31
|
+
/** Maps of result counts for letters on the alphabet bar, for each letter filter type */
|
|
32
|
+
prefixFilterCountMap?: Record<PrefixFilterType, PrefixFilterCounts>;
|
|
33
|
+
resizeObserver?: SharedResizeObserverInterface;
|
|
34
|
+
/**
|
|
35
|
+
* The Views sort option that was most recently selected (or the default, if none has been selected yet)
|
|
36
|
+
*/
|
|
37
|
+
private lastSelectedViewSort;
|
|
38
|
+
/**
|
|
39
|
+
* The Date sort option that was most recently selected (or the default, if none has been selected yet)
|
|
40
|
+
*/
|
|
41
|
+
private lastSelectedDateSort;
|
|
42
|
+
/**
|
|
43
|
+
* Which of the alphabet bars (title/creator) should be shown, or null if one
|
|
44
|
+
* should not currently be rendered.
|
|
45
|
+
*/
|
|
46
|
+
alphaSelectorVisible: AlphaSelector | null;
|
|
47
|
+
/**
|
|
48
|
+
* Whether the transparent backdrop to catch clicks outside the dropdown menu
|
|
49
|
+
* should be rendered.
|
|
50
|
+
*/
|
|
51
|
+
dropdownBackdropVisible: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* The width of the desktop view sort option container, updated upon each resize.
|
|
54
|
+
* Used for dynamically determining whether to use desktop or mobile view.
|
|
55
|
+
*/
|
|
56
|
+
desktopSortContainerWidth: number;
|
|
57
|
+
/**
|
|
58
|
+
* The width of the full sort bar, updated upon each resize.
|
|
59
|
+
* Used for dynamically determining whether to use desktop or mobile view.
|
|
60
|
+
*/
|
|
61
|
+
selectorBarContainerWidth: number;
|
|
62
|
+
/**
|
|
63
|
+
* The container for all the desktop view's sort options.
|
|
64
|
+
* Used for dynamically determining whether to use desktop or mobile view.
|
|
65
|
+
*/
|
|
66
|
+
private desktopSortContainer;
|
|
67
|
+
/**
|
|
68
|
+
* The container for the full sort bar.
|
|
69
|
+
* Used for dynamically determining whether to use desktop or mobile view.
|
|
70
|
+
*/
|
|
71
|
+
private sortSelectorContainer;
|
|
72
|
+
/** The dropdown component containing options for weekly and all-time views */
|
|
73
|
+
private viewsDropdown;
|
|
74
|
+
/** The dropdown component containing the four date options */
|
|
75
|
+
private dateDropdown;
|
|
76
|
+
/** The single, consolidated dropdown component shown in mobile view */
|
|
77
|
+
private mobileDropdown;
|
|
78
|
+
render(): TemplateResult<1>;
|
|
79
|
+
willUpdate(changed: PropertyValues): void;
|
|
80
|
+
updated(changed: PropertyValues): void;
|
|
81
|
+
private setupEscapeListeners;
|
|
82
|
+
private boundSortBarSelectorEscapeListener;
|
|
83
|
+
connectedCallback(): void;
|
|
84
|
+
disconnectedCallback(): void;
|
|
85
|
+
private disconnectResizeObserver;
|
|
86
|
+
private setupResizeObserver;
|
|
87
|
+
handleResize(entry: ResizeObserverEntry): void;
|
|
88
|
+
/**
|
|
89
|
+
* Whether to show the mobile sort bar because there is not enough space
|
|
90
|
+
* for the desktop sort bar.
|
|
91
|
+
*/
|
|
92
|
+
private get mobileSelectorVisible();
|
|
93
|
+
/**
|
|
94
|
+
* Template to render the alphabet bar, or `nothing` if it should not be rendered
|
|
95
|
+
* for the current sort
|
|
96
|
+
*/
|
|
97
|
+
private get alphaBarTemplate();
|
|
98
|
+
/** Template to render the sort direction toggle button */
|
|
99
|
+
private get sortDirectionSelectorTemplate();
|
|
100
|
+
/** Template to render the sort direction button's icon in the correct current state */
|
|
101
|
+
private get sortDirectionIcon();
|
|
102
|
+
/** The template to render all the sort options in desktop view */
|
|
103
|
+
private get desktopSortSelectorTemplate();
|
|
104
|
+
/** The template to render all the sort options in mobile view */
|
|
105
|
+
private get mobileSortSelectorTemplate();
|
|
106
|
+
/**
|
|
107
|
+
* This generates each of the non-dropdown sort option links.
|
|
108
|
+
*
|
|
109
|
+
* It manages the display value and the selected state of the option.
|
|
110
|
+
*
|
|
111
|
+
* @param sortField
|
|
112
|
+
* @param options {
|
|
113
|
+
* onClick?: (e: Event) => void; If this is provided, it will also be called when the option is clicked.
|
|
114
|
+
* displayName?: TemplateResult; The name to display for the option. Defaults to the sortField display name.
|
|
115
|
+
* selected?: boolean; true if the option is selected. Defaults to the selectedSort === sortField.
|
|
116
|
+
* }
|
|
117
|
+
* @returns
|
|
118
|
+
*/
|
|
119
|
+
private getSortDisplayOption;
|
|
120
|
+
/**
|
|
121
|
+
* Generates a dropdown component containing multiple grouped sort options.
|
|
122
|
+
*
|
|
123
|
+
* @param options.displayName The name to use for the dropdown's visible label
|
|
124
|
+
* @param options.id The id to apply to the dropdown element
|
|
125
|
+
* @param options.dropdownOptions An array of option objects used to populate the dropdown
|
|
126
|
+
* @param options.selectedOption The id of the option that should be initially selected
|
|
127
|
+
* @param options.selected A boolean indicating whether this dropdown should use its
|
|
128
|
+
* selected appearance
|
|
129
|
+
* @param options.onOptionSelected A handler for optionSelected events coming from the dropdown
|
|
130
|
+
* @param options.onDropdownClick A handler for click events on the dropdown
|
|
131
|
+
* @param options.onLabelInteraction A handler for click events and Enter/Space keydown events
|
|
132
|
+
* on the dropdown's label
|
|
133
|
+
*/
|
|
134
|
+
private getSortDropdown;
|
|
135
|
+
/** Generates a single dropdown option object for the given sort field */
|
|
136
|
+
private getDropdownOption;
|
|
137
|
+
/** Handler for when any sort dropdown option is selected */
|
|
138
|
+
private dropdownOptionSelected;
|
|
139
|
+
/** The template to render for the views dropdown */
|
|
140
|
+
private get viewsDropdownTemplate();
|
|
141
|
+
/** The template to render for the date dropdown */
|
|
142
|
+
private get dateDropdownTemplate();
|
|
143
|
+
/** Handler for when a new mobile sort dropdown option is selected */
|
|
144
|
+
private mobileSortChanged;
|
|
145
|
+
/** Template for rendering the three display mode options */
|
|
146
|
+
/** Added data-testid for Playwright testing * */
|
|
147
|
+
private get displayOptionTemplate();
|
|
148
|
+
/**
|
|
149
|
+
* Template for rendering the transparent backdrop to capture clicks outside the
|
|
150
|
+
* dropdown menu while it is open.
|
|
151
|
+
*/
|
|
152
|
+
private get dropdownBackdrop();
|
|
153
|
+
/** Closes all of the sorting dropdown components' menus */
|
|
154
|
+
private closeDropdowns;
|
|
155
|
+
private selectDropdownSortField;
|
|
156
|
+
private clearAlphaBarFilters;
|
|
157
|
+
private setSortDirection;
|
|
158
|
+
/** Toggles the current sort direction between 'asc' and 'desc' */
|
|
159
|
+
private toggleSortDirection;
|
|
160
|
+
private handleSortDirectionClicked;
|
|
161
|
+
private setSelectedSort;
|
|
162
|
+
/** The current sort field, or the default one if no explicit sort is set */
|
|
163
|
+
private get finalizedSortField();
|
|
164
|
+
/** The current sort direction, or the default one if no explicit direction is set */
|
|
165
|
+
private get finalizedSortDirection();
|
|
166
|
+
/** Whether the sort direction button should be enabled for the current sort */
|
|
167
|
+
private get canChangeSortDirection();
|
|
168
|
+
/**
|
|
169
|
+
* There are four date sort options.
|
|
170
|
+
*
|
|
171
|
+
* This checks to see if the current sort is one of them.
|
|
172
|
+
*
|
|
173
|
+
* @readonly
|
|
174
|
+
* @private
|
|
175
|
+
* @type {boolean}
|
|
176
|
+
* @memberof SortFilterBar
|
|
177
|
+
*/
|
|
178
|
+
private get dateOptionSelected();
|
|
179
|
+
/**
|
|
180
|
+
* There are two view sort options.
|
|
181
|
+
*
|
|
182
|
+
* This checks to see if the current sort is one of them.
|
|
183
|
+
*
|
|
184
|
+
* @readonly
|
|
185
|
+
* @private
|
|
186
|
+
* @type {boolean}
|
|
187
|
+
* @memberof SortFilterBar
|
|
188
|
+
*/
|
|
189
|
+
private get viewOptionSelected();
|
|
190
|
+
/**
|
|
191
|
+
* The default field for the date sort dropdown.
|
|
192
|
+
* This is Date Favorited when that option is available, or Date Published otherwise.
|
|
193
|
+
*/
|
|
194
|
+
private get defaultDateSortField();
|
|
195
|
+
/**
|
|
196
|
+
* The display name of the last selected date field
|
|
197
|
+
*
|
|
198
|
+
* @readonly
|
|
199
|
+
* @private
|
|
200
|
+
* @type {string}
|
|
201
|
+
* @memberof SortFilterBar
|
|
202
|
+
*/
|
|
203
|
+
private get dateSortDisplayName();
|
|
204
|
+
/**
|
|
205
|
+
* The display name of the last selected view field
|
|
206
|
+
*
|
|
207
|
+
* @readonly
|
|
208
|
+
* @private
|
|
209
|
+
* @type {string}
|
|
210
|
+
* @memberof SortFilterBar
|
|
211
|
+
*/
|
|
212
|
+
private get viewSortDisplayName();
|
|
213
|
+
private get titleSelectorBar();
|
|
214
|
+
private get creatorSelectorBar();
|
|
215
|
+
private titleLetterChanged;
|
|
216
|
+
private creatorLetterChanged;
|
|
217
|
+
private emitTitleLetterChangedEvent;
|
|
218
|
+
private emitCreatorLetterChangedEvent;
|
|
219
|
+
private displayModeChanged;
|
|
220
|
+
private emitSortChangedEvent;
|
|
221
|
+
static get styles(): import("lit").CSSResult[];
|
|
222
|
+
}
|
|
223
|
+
export {};
|