@internetarchive/collection-browser 2.3.0 → 2.4.0-e2e-test-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 +466 -466
- package/dist/src/collection-browser.js +1476 -1476
- 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 +116 -114
- 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 +17 -17
- package/dist/src/collection-facets/facets-template.js +118 -115
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +74 -74
- package/dist/src/collection-facets/more-facets-content.js +360 -360
- 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 +522 -512
- 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 +87 -79
- 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/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 +699 -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 +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 +354 -352
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -15
- package/dist/src/tiles/hover/tile-hover-pane.js +127 -47
- package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +74 -74
- 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/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/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 +1293 -1293
- package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
- package/dist/test/collection-facets/facet-row.test.js +203 -203
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +105 -105
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +139 -139
- 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 +24 -24
- package/dist/test/mocks/mock-search-responses.js +860 -860
- package/dist/test/mocks/mock-search-service.d.ts +15 -15
- package/dist/test/mocks/mock-search-service.js +53 -53
- 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 -13
- 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 -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 +1 -1
- package/src/collection-facets/facet-row.ts +2 -0
- package/src/collection-facets/facets-template.ts +4 -1
- package/src/collection-facets.ts +12 -2
- package/src/empty-placeholder.ts +13 -5
- package/src/sort-filter-bar/sort-filter-bar.ts +3 -0
- package/src/tiles/hover/hover-pane-controller.ts +2 -0
- package/src/tiles/hover/tile-hover-pane.ts +100 -11
- package/src/tiles/image-block.ts +1 -1
- package/test/tiles/hover/tile-hover-pane.test.ts +61 -0
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -1,94 +1,97 @@
|
|
|
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 { getDefaultSelectedFacets, } from '../models';
|
|
6
|
-
import { FacetRow } from './facet-row';
|
|
7
|
-
let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
8
|
-
facetClicked(e) {
|
|
9
|
-
const { bucket, negative } = e.detail;
|
|
10
|
-
if (bucket.state === 'none') {
|
|
11
|
-
this.facetUnchecked(bucket);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
this.facetChecked(bucket, negative);
|
|
15
|
-
}
|
|
16
|
-
this.dispatchFacetClickEvent(e.detail);
|
|
17
|
-
}
|
|
18
|
-
facetChecked(bucket, negative) {
|
|
19
|
-
const { facetGroup, selectedFacets } = this;
|
|
20
|
-
if (!facetGroup)
|
|
21
|
-
return;
|
|
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 { getDefaultSelectedFacets, } from '../models';
|
|
6
|
+
import { FacetRow } from './facet-row';
|
|
7
|
+
let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
8
|
+
facetClicked(e) {
|
|
9
|
+
const { bucket, negative } = e.detail;
|
|
10
|
+
if (bucket.state === 'none') {
|
|
11
|
+
this.facetUnchecked(bucket);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
this.facetChecked(bucket, negative);
|
|
15
|
+
}
|
|
16
|
+
this.dispatchFacetClickEvent(e.detail);
|
|
17
|
+
}
|
|
18
|
+
facetChecked(bucket, negative) {
|
|
19
|
+
const { facetGroup, selectedFacets } = this;
|
|
20
|
+
if (!facetGroup)
|
|
21
|
+
return;
|
|
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
|
+
];
|
|
90
90
|
return html `
|
|
91
|
-
<div
|
|
91
|
+
<div
|
|
92
|
+
class="facets-on-${this.renderOn}"
|
|
93
|
+
data-testid="facets-on-${facetGroup.key}"
|
|
94
|
+
>
|
|
92
95
|
${repeat(facetBuckets, bucket => `${facetGroup.key}:${bucket.key}`, bucket => html `<facet-row
|
|
93
96
|
.facetType=${facetGroup.key}
|
|
94
97
|
.bucket=${bucket}
|
|
@@ -96,12 +99,12 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
|
96
99
|
@facetClick=${this.facetClicked}
|
|
97
100
|
></facet-row>`)}
|
|
98
101
|
</div>
|
|
99
|
-
`;
|
|
100
|
-
}
|
|
101
|
-
render() {
|
|
102
|
-
return html `${this.facetsTemplate}`;
|
|
103
|
-
}
|
|
104
|
-
static get styles() {
|
|
102
|
+
`;
|
|
103
|
+
}
|
|
104
|
+
render() {
|
|
105
|
+
return html `${this.facetsTemplate}`;
|
|
106
|
+
}
|
|
107
|
+
static get styles() {
|
|
105
108
|
return css `
|
|
106
109
|
@media (max-width: 560px) {
|
|
107
110
|
.facets-on-modal {
|
|
@@ -142,23 +145,23 @@ let FacetsTemplate = class FacetsTemplate extends LitElement {
|
|
|
142
145
|
a:hover {
|
|
143
146
|
text-decoration: underline;
|
|
144
147
|
}
|
|
145
|
-
`;
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
__decorate([
|
|
149
|
-
property({ type: Object })
|
|
150
|
-
], FacetsTemplate.prototype, "facetGroup", void 0);
|
|
151
|
-
__decorate([
|
|
152
|
-
property({ type: Object })
|
|
153
|
-
], FacetsTemplate.prototype, "selectedFacets", void 0);
|
|
154
|
-
__decorate([
|
|
155
|
-
property({ type: String })
|
|
156
|
-
], FacetsTemplate.prototype, "renderOn", void 0);
|
|
157
|
-
__decorate([
|
|
158
|
-
property({ type: Object })
|
|
159
|
-
], FacetsTemplate.prototype, "collectionTitles", void 0);
|
|
160
|
-
FacetsTemplate = __decorate([
|
|
161
|
-
customElement('facets-template')
|
|
162
|
-
], FacetsTemplate);
|
|
163
|
-
export { FacetsTemplate };
|
|
148
|
+
`;
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
__decorate([
|
|
152
|
+
property({ type: Object })
|
|
153
|
+
], FacetsTemplate.prototype, "facetGroup", void 0);
|
|
154
|
+
__decorate([
|
|
155
|
+
property({ type: Object })
|
|
156
|
+
], FacetsTemplate.prototype, "selectedFacets", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
property({ type: String })
|
|
159
|
+
], FacetsTemplate.prototype, "renderOn", void 0);
|
|
160
|
+
__decorate([
|
|
161
|
+
property({ type: Object })
|
|
162
|
+
], FacetsTemplate.prototype, "collectionTitles", void 0);
|
|
163
|
+
FacetsTemplate = __decorate([
|
|
164
|
+
customElement('facets-template')
|
|
165
|
+
], FacetsTemplate);
|
|
166
|
+
export { FacetsTemplate };
|
|
164
167
|
//# sourceMappingURL=facets-template.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"facets-template.js","sourceRoot":"","sources":["../../../src/collection-facets/facets-template.ts"],"names":[],"mappings":"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","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 {\n FacetGroup,\n FacetBucket,\n SelectedFacets,\n getDefaultSelectedFacets,\n FacetEventDetails,\n} from '../models';\nimport type { CollectionTitles } from '../data-source/models';\nimport { FacetRow } from './facet-row';\n\n@customElement('facets-template')\nexport class FacetsTemplate extends LitElement {\n @property({ type: Object }) facetGroup?: FacetGroup;\n\n @property({ type: Object }) selectedFacets?: SelectedFacets;\n\n @property({ type: String }) renderOn?: string;\n\n @property({ type: Object })\n collectionTitles?: CollectionTitles;\n\n private facetClicked(e: CustomEvent<FacetEventDetails>) {\n const { bucket, negative } = e.detail;\n if (bucket.state === 'none') {\n this.facetUnchecked(bucket);\n } else {\n this.facetChecked(bucket, negative);\n }\n\n this.dispatchFacetClickEvent(e.detail);\n }\n\n private facetChecked(bucket: FacetBucket, negative: boolean) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n newFacets[facetGroup.key][bucket.key] = {\n ...bucket,\n state: FacetRow.getFacetState(true, negative),\n };\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\n }\n\n private facetUnchecked(bucket: FacetBucket) {\n const { facetGroup, selectedFacets } = this;\n if (!facetGroup) return;\n\n let newFacets: SelectedFacets;\n if (selectedFacets) {\n newFacets = {\n ...selectedFacets,\n };\n } else {\n newFacets = getDefaultSelectedFacets();\n }\n delete newFacets[facetGroup.key][bucket.key];\n\n this.selectedFacets = newFacets;\n this.dispatchSelectedFacetsChanged();\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 dispatchSelectedFacetsChanged() {\n const event = new CustomEvent<SelectedFacets>('selectedFacetsChanged', {\n detail: this.selectedFacets,\n bubbles: true,\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 let facetBuckets = facetGroup.buckets as FacetBucket[];\n\n /**\n * sorting FacetBucket before render page / modal\n * - first, selected items should be at top having sorted\n * - second, suppressed/hidden items should be after selected having sorted\n * - and then no-selected / not suppressed items should render having sorted\n */\n facetBuckets = [\n ...facetBuckets\n .filter(x => x.state === 'selected')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets\n .filter(x => x.state === 'hidden')\n .sort((a, b) => (a.count < b.count ? 1 : -1)),\n ...facetBuckets.filter(x => x.state === 'none'),\n ];\n\n return html`\n <div\n class=\"facets-on-${this.renderOn}\"\n data-testid=\"facets-on-${facetGroup.key}\"\n >\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 render() {\n return html`${this.facetsTemplate}`;\n }\n\n static get styles(): CSSResultGroup {\n return css`\n @media (max-width: 560px) {\n .facets-on-modal {\n column-count: 1 !important;\n }\n }\n .facets-on-modal {\n column-gap: 15px;\n column-count: 3;\n }\n\n ul.facet-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n ul.facet-list li {\n margin-bottom: 0.2rem;\n display: grid;\n }\n\n .facet-row {\n display: flex;\n font-weight: 500;\n font-size: 1.2rem;\n margin: 2.5px auto;\n height: auto;\n border-top: var(--facet-row-border-top, 1px solid transparent);\n border-bottom: var(--facet-row-border-bottom, 1px solid transparent);\n overflow: hidden;\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,74 @@
|
|
|
1
|
-
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
-
import { Aggregation, 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, FacetGroup, 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
|
-
facetAggregationKey?: FacetOption;
|
|
14
|
-
query?: string;
|
|
15
|
-
filterMap?: FilterMap;
|
|
16
|
-
modalManager?: ModalManagerInterface;
|
|
17
|
-
searchService?: SearchServiceInterface;
|
|
18
|
-
searchType?: SearchType;
|
|
19
|
-
pageSpecifierParams?: PageSpecifierParams;
|
|
20
|
-
collectionTitles?: CollectionTitles;
|
|
21
|
-
selectedFacets?: SelectedFacets;
|
|
22
|
-
sortedBy: AggregationSortType;
|
|
23
|
-
analyticsHandler?: AnalyticsManagerInterface;
|
|
24
|
-
aggregations?: Record<string, Aggregation>;
|
|
25
|
-
facetGroup?: FacetGroup[];
|
|
26
|
-
facetGroupTitle?: String;
|
|
27
|
-
pageNumber: number;
|
|
28
|
-
/**
|
|
29
|
-
* Facets are loading on popup
|
|
30
|
-
*/
|
|
31
|
-
facetsLoading: boolean;
|
|
32
|
-
paginationSize: number;
|
|
33
|
-
facetsType: string;
|
|
34
|
-
private facetsPerPage;
|
|
35
|
-
updated(changed: PropertyValues): void;
|
|
36
|
-
firstUpdated(): void;
|
|
37
|
-
/**
|
|
38
|
-
* Close more facets modal on Escape click
|
|
39
|
-
*/
|
|
40
|
-
private setupEscapeListeners;
|
|
41
|
-
/**
|
|
42
|
-
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
43
|
-
*/
|
|
44
|
-
private get isSearchResultsPage();
|
|
45
|
-
/**
|
|
46
|
-
* Get specific facets data from search-service API based of currently query params
|
|
47
|
-
* - this.aggregations - hold result of search service and being used for further processing.
|
|
48
|
-
*/
|
|
49
|
-
updateSpecificFacets(): Promise<void>;
|
|
50
|
-
private pageNumberClicked;
|
|
51
|
-
/**
|
|
52
|
-
* Combines the selected facets with the aggregations to create a single list of facets
|
|
53
|
-
*/
|
|
54
|
-
private get mergedFacets();
|
|
55
|
-
/**
|
|
56
|
-
* Converts the selected facets to a `FacetGroup` array,
|
|
57
|
-
* which is easier to work with
|
|
58
|
-
*/
|
|
59
|
-
private get selectedFacetGroups();
|
|
60
|
-
/**
|
|
61
|
-
* Converts the raw `aggregations` to `FacetGroups`, which are easier to use
|
|
62
|
-
*/
|
|
63
|
-
private get aggregationFacetGroups();
|
|
64
|
-
private get getMoreFacetsTemplate();
|
|
65
|
-
private get loaderTemplate();
|
|
66
|
-
private get facetsPaginationTemplate();
|
|
67
|
-
private get footerTemplate();
|
|
68
|
-
private sortFacetAggregation;
|
|
69
|
-
private get getModalHeaderTemplate();
|
|
70
|
-
render(): TemplateResult<1>;
|
|
71
|
-
private applySearchFacetsClicked;
|
|
72
|
-
private cancelClick;
|
|
73
|
-
static get styles(): CSSResultGroup;
|
|
74
|
-
}
|
|
1
|
+
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
import { Aggregation, 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, FacetGroup, 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
|
+
facetAggregationKey?: FacetOption;
|
|
14
|
+
query?: string;
|
|
15
|
+
filterMap?: FilterMap;
|
|
16
|
+
modalManager?: ModalManagerInterface;
|
|
17
|
+
searchService?: SearchServiceInterface;
|
|
18
|
+
searchType?: SearchType;
|
|
19
|
+
pageSpecifierParams?: PageSpecifierParams;
|
|
20
|
+
collectionTitles?: CollectionTitles;
|
|
21
|
+
selectedFacets?: SelectedFacets;
|
|
22
|
+
sortedBy: AggregationSortType;
|
|
23
|
+
analyticsHandler?: AnalyticsManagerInterface;
|
|
24
|
+
aggregations?: Record<string, Aggregation>;
|
|
25
|
+
facetGroup?: FacetGroup[];
|
|
26
|
+
facetGroupTitle?: String;
|
|
27
|
+
pageNumber: number;
|
|
28
|
+
/**
|
|
29
|
+
* Facets are loading on popup
|
|
30
|
+
*/
|
|
31
|
+
facetsLoading: boolean;
|
|
32
|
+
paginationSize: number;
|
|
33
|
+
facetsType: string;
|
|
34
|
+
private facetsPerPage;
|
|
35
|
+
updated(changed: PropertyValues): void;
|
|
36
|
+
firstUpdated(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Close more facets modal on Escape click
|
|
39
|
+
*/
|
|
40
|
+
private setupEscapeListeners;
|
|
41
|
+
/**
|
|
42
|
+
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
43
|
+
*/
|
|
44
|
+
private get isSearchResultsPage();
|
|
45
|
+
/**
|
|
46
|
+
* Get specific facets data from search-service API based of currently query params
|
|
47
|
+
* - this.aggregations - hold result of search service and being used for further processing.
|
|
48
|
+
*/
|
|
49
|
+
updateSpecificFacets(): Promise<void>;
|
|
50
|
+
private pageNumberClicked;
|
|
51
|
+
/**
|
|
52
|
+
* Combines the selected facets with the aggregations to create a single list of facets
|
|
53
|
+
*/
|
|
54
|
+
private get mergedFacets();
|
|
55
|
+
/**
|
|
56
|
+
* Converts the selected facets to a `FacetGroup` array,
|
|
57
|
+
* which is easier to work with
|
|
58
|
+
*/
|
|
59
|
+
private get selectedFacetGroups();
|
|
60
|
+
/**
|
|
61
|
+
* Converts the raw `aggregations` to `FacetGroups`, which are easier to use
|
|
62
|
+
*/
|
|
63
|
+
private get aggregationFacetGroups();
|
|
64
|
+
private get getMoreFacetsTemplate();
|
|
65
|
+
private get loaderTemplate();
|
|
66
|
+
private get facetsPaginationTemplate();
|
|
67
|
+
private get footerTemplate();
|
|
68
|
+
private sortFacetAggregation;
|
|
69
|
+
private get getModalHeaderTemplate();
|
|
70
|
+
render(): TemplateResult<1>;
|
|
71
|
+
private applySearchFacetsClicked;
|
|
72
|
+
private cancelClick;
|
|
73
|
+
static get styles(): CSSResultGroup;
|
|
74
|
+
}
|