@internetarchive/collection-browser 2.4.1-e2e-test-2 → 2.5.1-alpha.0
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 +12 -12
- package/dist/index.js +12 -12
- package/dist/src/app-root.d.ts +91 -91
- package/dist/src/app-root.js +487 -487
- 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/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 +564 -466
- package/dist/src/collection-browser.js +1568 -1479
- 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 +117 -116
- 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/facets-template.d.ts +14 -17
- package/dist/src/collection-facets/facets-template.js +47 -144
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +106 -74
- package/dist/src/collection-facets/more-facets-content.js +425 -377
- 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 -196
- 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 +514 -514
- 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.d.ts +378 -378
- package/dist/src/data-source/collection-browser-data-source.js +985 -985
- 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 +74 -74
- 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 +30 -30
- package/dist/src/manage/manage-bar.js +61 -61
- 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 +209 -209
- package/dist/src/models.js +381 -381
- package/dist/src/restoration-state-handler.d.ts +70 -70
- package/dist/src/restoration-state-handler.js +357 -357
- 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 +222 -222
- package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -696
- package/dist/src/styles/ia-button.d.ts +2 -2
- package/dist/src/styles/ia-button.js +16 -16
- 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 +63 -63
- 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 +30 -30
- package/dist/src/tiles/grid/item-tile.js +149 -149
- 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 +17 -17
- package/dist/src/tiles/image-block.js +73 -73
- 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 +15 -15
- package/dist/src/tiles/list/tile-list-compact.js +114 -114
- package/dist/src/tiles/list/tile-list.d.ts +50 -50
- package/dist/src/tiles/list/tile-list.js +315 -315
- 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 +10 -10
- package/dist/src/tiles/overlay/icon-overlay.js +40 -40
- package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
- package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/text-overlay.js +42 -42
- 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 +229 -229
- 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 -0
- package/dist/src/utils/facet-utils.js +147 -0
- package/dist/src/utils/facet-utils.js.map +1 -0
- 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 +25 -25
- 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 +1294 -1293
- 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 -203
- 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 -114
- 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 +150 -141
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +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 +652 -652
- 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 +48 -48
- 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 +1 -1
- package/dist/test/manage/manage-bar.test.js +81 -81
- 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 -24
- package/dist/test/mocks/mock-search-responses.js +942 -860
- 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 -53
- 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/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 +48 -48
- 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 +17 -17
- 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/collection-browser.ts +106 -19
- package/src/collection-facets/facet-row.ts +5 -4
- package/src/collection-facets/facets-template.ts +12 -114
- package/src/collection-facets/more-facets-content.ts +220 -144
- package/src/collection-facets.ts +24 -12
- package/src/utils/facet-utils.ts +182 -0
- package/test/collection-browser.test.ts +1 -0
- package/test/collection-facets/facet-row.test.ts +30 -6
- package/test/collection-facets/facets-template.test.ts +6 -32
- package/test/collection-facets/more-facets-content.test.ts +46 -35
- package/test/mocks/mock-search-responses.ts +86 -0
- package/test/mocks/mock-search-service.ts +2 -0
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,94 +1,26 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { repeat } from 'lit/directives/repeat.js';
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
let newFacets;
|
|
23
|
-
if (selectedFacets) {
|
|
24
|
-
newFacets = {
|
|
25
|
-
...selectedFacets,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
newFacets = getDefaultSelectedFacets();
|
|
30
|
-
}
|
|
31
|
-
newFacets[facetGroup.key][bucket.key] = {
|
|
32
|
-
...bucket,
|
|
33
|
-
state: FacetRow.getFacetState(true, negative),
|
|
34
|
-
};
|
|
35
|
-
this.selectedFacets = newFacets;
|
|
36
|
-
this.dispatchSelectedFacetsChanged();
|
|
37
|
-
}
|
|
38
|
-
facetUnchecked(bucket) {
|
|
39
|
-
const { facetGroup, selectedFacets } = this;
|
|
40
|
-
if (!facetGroup)
|
|
41
|
-
return;
|
|
42
|
-
let newFacets;
|
|
43
|
-
if (selectedFacets) {
|
|
44
|
-
newFacets = {
|
|
45
|
-
...selectedFacets,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
newFacets = getDefaultSelectedFacets();
|
|
50
|
-
}
|
|
51
|
-
delete newFacets[facetGroup.key][bucket.key];
|
|
52
|
-
this.selectedFacets = newFacets;
|
|
53
|
-
this.dispatchSelectedFacetsChanged();
|
|
54
|
-
}
|
|
55
|
-
dispatchFacetClickEvent(detail) {
|
|
56
|
-
const event = new CustomEvent('facetClick', {
|
|
57
|
-
detail,
|
|
58
|
-
composed: true,
|
|
59
|
-
});
|
|
60
|
-
this.dispatchEvent(event);
|
|
61
|
-
}
|
|
62
|
-
dispatchSelectedFacetsChanged() {
|
|
63
|
-
const event = new CustomEvent('selectedFacetsChanged', {
|
|
64
|
-
detail: this.selectedFacets,
|
|
65
|
-
bubbles: true,
|
|
66
|
-
composed: true,
|
|
67
|
-
});
|
|
68
|
-
this.dispatchEvent(event);
|
|
69
|
-
}
|
|
70
|
-
get facetsTemplate() {
|
|
71
|
-
const { facetGroup } = this;
|
|
72
|
-
if (!facetGroup)
|
|
73
|
-
return nothing;
|
|
74
|
-
let facetBuckets = facetGroup.buckets;
|
|
75
|
-
/**
|
|
76
|
-
* sorting FacetBucket before render page / modal
|
|
77
|
-
* - first, selected items should be at top having sorted
|
|
78
|
-
* - second, suppressed/hidden items should be after selected having sorted
|
|
79
|
-
* - and then no-selected / not suppressed items should render having sorted
|
|
80
|
-
*/
|
|
81
|
-
facetBuckets = [
|
|
82
|
-
...facetBuckets
|
|
83
|
-
.filter(x => x.state === 'selected')
|
|
84
|
-
.sort((a, b) => (a.count < b.count ? 1 : -1)),
|
|
85
|
-
...facetBuckets
|
|
86
|
-
.filter(x => x.state === 'hidden')
|
|
87
|
-
.sort((a, b) => (a.count < b.count ? 1 : -1)),
|
|
88
|
-
...facetBuckets.filter(x => x.state === 'none'),
|
|
89
|
-
];
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
5
|
+
import './facet-row';
|
|
6
|
+
let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
7
|
+
facetClicked(e) {
|
|
8
|
+
this.dispatchFacetClickEvent(e.detail);
|
|
9
|
+
}
|
|
10
|
+
dispatchFacetClickEvent(detail) {
|
|
11
|
+
const event = new CustomEvent('facetClick', {
|
|
12
|
+
detail,
|
|
13
|
+
composed: true,
|
|
14
|
+
});
|
|
15
|
+
this.dispatchEvent(event);
|
|
16
|
+
}
|
|
17
|
+
get facetsTemplate() {
|
|
18
|
+
const { facetGroup } = this;
|
|
19
|
+
if (!facetGroup)
|
|
20
|
+
return nothing;
|
|
21
|
+
const facetBuckets = facetGroup.buckets;
|
|
90
22
|
return html `
|
|
91
|
-
<div class="
|
|
23
|
+
<div class="facet-rows">
|
|
92
24
|
${repeat(facetBuckets, bucket => `${facetGroup.key}:${bucket.key}`, bucket => html `<facet-row
|
|
93
25
|
.facetType=${facetGroup.key}
|
|
94
26
|
.bucket=${bucket}
|
|
@@ -96,42 +28,19 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
|
96
28
|
@facetClick=${this.facetClicked}
|
|
97
29
|
></facet-row>`)}
|
|
98
30
|
</div>
|
|
99
|
-
`;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
31
|
+
`;
|
|
32
|
+
}
|
|
33
|
+
updated() { console.log('facets-template updated'); }
|
|
34
|
+
render() {
|
|
35
|
+
return html `${this.facetsTemplate}`;
|
|
36
|
+
}
|
|
37
|
+
static get styles() {
|
|
38
|
+
const columnCount = css `var(--facetsColumnCount, 1)`;
|
|
39
|
+
const columnGap = css `var(--facetsColumnGap, 15px)`;
|
|
105
40
|
return css `
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
.facets-on-modal {
|
|
112
|
-
column-gap: 15px;
|
|
113
|
-
column-count: 3;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
ul.facet-list {
|
|
117
|
-
list-style: none;
|
|
118
|
-
margin: 0;
|
|
119
|
-
padding: 0;
|
|
120
|
-
}
|
|
121
|
-
ul.facet-list li {
|
|
122
|
-
margin-bottom: 0.2rem;
|
|
123
|
-
display: grid;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.facet-row {
|
|
127
|
-
display: flex;
|
|
128
|
-
font-weight: 500;
|
|
129
|
-
font-size: 1.2rem;
|
|
130
|
-
margin: 2.5px auto;
|
|
131
|
-
height: auto;
|
|
132
|
-
border-top: var(--facet-row-border-top, 1px solid transparent);
|
|
133
|
-
border-bottom: var(--facet-row-border-bottom, 1px solid transparent);
|
|
134
|
-
overflow: hidden;
|
|
41
|
+
.facet-rows {
|
|
42
|
+
column-count: ${columnCount};
|
|
43
|
+
column-gap: ${columnGap};
|
|
135
44
|
}
|
|
136
45
|
|
|
137
46
|
a:link,
|
|
@@ -142,23 +51,17 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
|
142
51
|
a:hover {
|
|
143
52
|
text-decoration: underline;
|
|
144
53
|
}
|
|
145
|
-
`;
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
__decorate([
|
|
149
|
-
property({ type: Object })
|
|
150
|
-
], FacetsTemplate.prototype, "facetGroup", void 0);
|
|
151
|
-
__decorate([
|
|
152
|
-
property({ type: Object })
|
|
153
|
-
], FacetsTemplate.prototype, "
|
|
154
|
-
__decorate([
|
|
155
|
-
|
|
156
|
-
], FacetsTemplate
|
|
157
|
-
|
|
158
|
-
property({ type: Object })
|
|
159
|
-
], FacetsTemplate.prototype, "collectionTitles", void 0);
|
|
160
|
-
FacetsTemplate = __decorate([
|
|
161
|
-
customElement('facets-template')
|
|
162
|
-
], FacetsTemplate);
|
|
163
|
-
export { FacetsTemplate };
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
__decorate([
|
|
58
|
+
property({ type: Object })
|
|
59
|
+
], FacetsTemplate.prototype, "facetGroup", void 0);
|
|
60
|
+
__decorate([
|
|
61
|
+
property({ type: Object })
|
|
62
|
+
], FacetsTemplate.prototype, "collectionTitles", void 0);
|
|
63
|
+
FacetsTemplate = __decorate([
|
|
64
|
+
customElement('facets-template')
|
|
65
|
+
], FacetsTemplate);
|
|
66
|
+
export { FacetsTemplate };
|
|
164
67
|
//# sourceMappingURL=facets-template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EAGV,OAAO,GACR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EAGV,OAAO,GACR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,OAAO,aAAa,CAAC;AAGrB,IAAa,cAAc,GAA3B,MAAa,cAAe,SAAQ,UAAU;IAMpC,YAAY,CAAC,CAAiC;QACpD,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,uBAAuB,CAAC,MAAyB;QACvD,MAAM,KAAK,GAAG,IAAI,WAAW,CAAoB,YAAY,EAAE;YAC7D,MAAM;YACN,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,IAAY,cAAc;QACxB,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC;QAEhC,MAAM,YAAY,GAAG,UAAU,CAAC,OAAwB,CAAC;QAEzD,OAAO,IAAI,CAAA;;UAEL,MAAM,CACN,YAAY,EACZ,MAAM,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,EAC3C,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;yBACC,UAAU,CAAC,GAAG;sBACjB,MAAM;gCACI,IAAI,CAAC,gBAAgB;0BAC3B,IAAI,CAAC,YAAY;wBACnB,CACf;;KAEJ,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM;QACJ,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,MAAM;QACf,MAAM,WAAW,GAAG,GAAG,CAAA,6BAA6B,CAAC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAA,8BAA8B,CAAC;QAEpD,OAAO,GAAG,CAAA;;wBAEU,WAAW;sBACb,SAAS;;;;;;;;;;;KAW1B,CAAC;IACJ,CAAC;CACF,CAAA;AAjE6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDAAyB;AAGpD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACS;AAJzB,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAkE1B;SAlEY,cAAc","sourcesContent":["import {\n css,\n html,\n LitElement,\n TemplateResult,\n CSSResultGroup,\n nothing,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport type { FacetGroup, FacetBucket, FacetEventDetails } from '../models';\nimport type { CollectionTitles } from '../data-source/models';\nimport './facet-row';\n\n@customElement('facets-template')\nexport class FacetsTemplate extends LitElement {\n @property({ type: Object }) facetGroup?: FacetGroup;\n\n @property({ type: Object })\n collectionTitles?: CollectionTitles;\n\n private facetClicked(e: CustomEvent<FacetEventDetails>) {\n this.dispatchFacetClickEvent(e.detail);\n }\n\n private dispatchFacetClickEvent(detail: FacetEventDetails) {\n const event = new CustomEvent<FacetEventDetails>('facetClick', {\n detail,\n composed: true,\n });\n this.dispatchEvent(event);\n }\n\n private get facetsTemplate(): TemplateResult | typeof nothing {\n const { facetGroup } = this;\n if (!facetGroup) return nothing;\n\n const facetBuckets = facetGroup.buckets as FacetBucket[];\n\n return html`\n <div class=\"facet-rows\">\n ${repeat(\n facetBuckets,\n bucket => `${facetGroup.key}:${bucket.key}`,\n bucket => html`<facet-row\n .facetType=${facetGroup.key}\n .bucket=${bucket}\n .collectionTitles=${this.collectionTitles}\n @facetClick=${this.facetClicked}\n ></facet-row>`\n )}\n </div>\n `;\n }\n\n updated() { console.log('facets-template updated'); }\n\n render() {\n return html`${this.facetsTemplate}`;\n }\n\n static get styles(): CSSResultGroup {\n const columnCount = css`var(--facetsColumnCount, 1)`;\n const columnGap = css`var(--facetsColumnGap, 15px)`;\n\n return css`\n .facet-rows {\n column-count: ${columnCount};\n column-gap: ${columnGap};\n }\n\n a:link,\n a:visited {\n text-decoration: none;\n color: var(--ia-theme-link-color, #4b64ff);\n }\n a:hover {\n text-decoration: underline;\n }\n `;\n }\n}\n"]}
|
|
@@ -1,74 +1,106 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
-
import {
|
|
3
|
-
import type { ModalManagerInterface } from '@internetarchive/modal-manager';
|
|
4
|
-
import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
|
|
5
|
-
import { SelectedFacets,
|
|
6
|
-
import type { CollectionTitles, PageSpecifierParams } from '../data-source/models';
|
|
7
|
-
import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
|
|
8
|
-
import './more-facets-pagination';
|
|
9
|
-
import './facets-template';
|
|
10
|
-
import './toggle-switch';
|
|
11
|
-
export declare class MoreFacetsContent extends LitElement {
|
|
12
|
-
facetKey?: FacetOption;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
private get
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
1
|
+
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
import { SearchServiceInterface, SearchType, AggregationSortType, FilterMap } from '@internetarchive/search-service';
|
|
3
|
+
import type { ModalManagerInterface } from '@internetarchive/modal-manager';
|
|
4
|
+
import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
|
|
5
|
+
import { SelectedFacets, FacetOption } from '../models';
|
|
6
|
+
import type { CollectionTitles, PageSpecifierParams } from '../data-source/models';
|
|
7
|
+
import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
|
|
8
|
+
import './more-facets-pagination';
|
|
9
|
+
import './facets-template';
|
|
10
|
+
import './toggle-switch';
|
|
11
|
+
export declare class MoreFacetsContent extends LitElement {
|
|
12
|
+
facetKey?: FacetOption;
|
|
13
|
+
query?: string;
|
|
14
|
+
filterMap?: FilterMap;
|
|
15
|
+
searchType?: SearchType;
|
|
16
|
+
pageSpecifierParams?: PageSpecifierParams;
|
|
17
|
+
collectionTitles?: CollectionTitles;
|
|
18
|
+
/**
|
|
19
|
+
* Maximum number of facets to show per page within the modal.
|
|
20
|
+
*/
|
|
21
|
+
facetsPerPage: number;
|
|
22
|
+
/**
|
|
23
|
+
* Whether we are waiting for facet data to load.
|
|
24
|
+
* We begin with this set to true so that we show an initial loading indicator.
|
|
25
|
+
*/
|
|
26
|
+
facetsLoading: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The set of pre-existing facet selections (including both selected & negated facets).
|
|
29
|
+
*/
|
|
30
|
+
selectedFacets?: SelectedFacets;
|
|
31
|
+
sortedBy: AggregationSortType;
|
|
32
|
+
modalManager?: ModalManagerInterface;
|
|
33
|
+
searchService?: SearchServiceInterface;
|
|
34
|
+
analyticsHandler?: AnalyticsManagerInterface;
|
|
35
|
+
/**
|
|
36
|
+
* The full set of aggregations received from the search service
|
|
37
|
+
*/
|
|
38
|
+
private aggregations?;
|
|
39
|
+
/**
|
|
40
|
+
* A FacetGroup storing the full set of facet buckets to be shown on the dialog.
|
|
41
|
+
*/
|
|
42
|
+
private facetGroup?;
|
|
43
|
+
/**
|
|
44
|
+
* An object holding any changes the patron has made to their facet selections
|
|
45
|
+
* within the modal dialog but which they have not yet applied. These are
|
|
46
|
+
* eventually merged into the existing `selectedFacets` when the patron applies
|
|
47
|
+
* their changes, or discarded if they cancel/close the dialog.
|
|
48
|
+
*/
|
|
49
|
+
private unappliedFacetChanges;
|
|
50
|
+
/**
|
|
51
|
+
* Which page of facets we are showing.
|
|
52
|
+
*/
|
|
53
|
+
private pageNumber;
|
|
54
|
+
willUpdate(changed: PropertyValues): void;
|
|
55
|
+
updated(changed: PropertyValues): void;
|
|
56
|
+
firstUpdated(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Close more facets modal on Escape click
|
|
59
|
+
*/
|
|
60
|
+
private setupEscapeListeners;
|
|
61
|
+
/**
|
|
62
|
+
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
63
|
+
*/
|
|
64
|
+
private get isSearchResultsPage();
|
|
65
|
+
/**
|
|
66
|
+
* Get specific facets data from search-service API based of currently query params
|
|
67
|
+
* - this.aggregations - hold result of search service and being used for further processing.
|
|
68
|
+
*/
|
|
69
|
+
updateSpecificFacets(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Handler for page number changes from the pagination widget.
|
|
72
|
+
*/
|
|
73
|
+
private pageNumberClicked;
|
|
74
|
+
/**
|
|
75
|
+
* Combines the selected facets with the aggregations to create a single list of facets
|
|
76
|
+
*/
|
|
77
|
+
private get mergedFacets();
|
|
78
|
+
/**
|
|
79
|
+
* Converts the selected facets for the current facet key to a `FacetGroup`,
|
|
80
|
+
* which is easier to work with.
|
|
81
|
+
*/
|
|
82
|
+
private get selectedFacetGroup();
|
|
83
|
+
/**
|
|
84
|
+
* Converts the raw `aggregations` for the current facet key to a `FacetGroup`,
|
|
85
|
+
* which is easier to work with.
|
|
86
|
+
*/
|
|
87
|
+
private get aggregationFacetGroup();
|
|
88
|
+
/**
|
|
89
|
+
* Returns a FacetGroup representing only the current page of facet buckets to show.
|
|
90
|
+
*/
|
|
91
|
+
private get facetGroupForCurrentPage();
|
|
92
|
+
private get moreFacetsTemplate();
|
|
93
|
+
private get loaderTemplate();
|
|
94
|
+
/**
|
|
95
|
+
* How many pages of facets to show in the modal pagination widget
|
|
96
|
+
*/
|
|
97
|
+
private get paginationSize();
|
|
98
|
+
private get facetsPaginationTemplate();
|
|
99
|
+
private get footerTemplate();
|
|
100
|
+
private sortFacetAggregation;
|
|
101
|
+
private get modalHeaderTemplate();
|
|
102
|
+
render(): TemplateResult<1>;
|
|
103
|
+
private applySearchFacetsClicked;
|
|
104
|
+
private cancelClick;
|
|
105
|
+
static get styles(): CSSResultGroup;
|
|
106
|
+
}
|