@internetarchive/collection-browser 2.4.1-e2e-test-2 → 2.5.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 +13 -17
- package/dist/src/collection-facets/facets-template.js +46 -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 +424 -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 +146 -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 +10 -114
- package/src/collection-facets/more-facets-content.ts +219 -144
- package/src/collection-facets.ts +24 -12
- package/src/utils/facet-utils.ts +181 -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,261 +1,308 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
/* eslint-disable dot-notation */
|
|
3
|
-
/* eslint-disable lit-a11y/click-events-have-key-events */
|
|
4
|
-
import { css, html, LitElement, nothing, } from 'lit';
|
|
5
|
-
import { customElement, property, state } from 'lit/decorators.js';
|
|
6
|
-
import { AggregationSortType, } from '@internetarchive/search-service';
|
|
7
|
-
import {
|
|
8
|
-
import '
|
|
9
|
-
import '
|
|
10
|
-
import './facets-
|
|
11
|
-
import
|
|
12
|
-
import '
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
this.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
/* eslint-disable dot-notation */
|
|
3
|
+
/* eslint-disable lit-a11y/click-events-have-key-events */
|
|
4
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
5
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
6
|
+
import { AggregationSortType, } from '@internetarchive/search-service';
|
|
7
|
+
import { msg } from '@lit/localize';
|
|
8
|
+
import { facetTitles, suppressedCollections, valueFacetSort, defaultFacetSort, getDefaultSelectedFacets, } from '../models';
|
|
9
|
+
import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
|
|
10
|
+
import './more-facets-pagination';
|
|
11
|
+
import './facets-template';
|
|
12
|
+
import { analyticsActions, analyticsCategories, } from '../utils/analytics-events';
|
|
13
|
+
import './toggle-switch';
|
|
14
|
+
import { srOnlyStyle } from '../styles/sr-only';
|
|
15
|
+
import { mergeSelectedFacets, sortBucketsBySelectionState, updateSelectedFacetBucket, } from '../utils/facet-utils';
|
|
16
|
+
let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
/**
|
|
20
|
+
* Maximum number of facets to show per page within the modal.
|
|
21
|
+
*/
|
|
22
|
+
this.facetsPerPage = 35;
|
|
23
|
+
/**
|
|
24
|
+
* Whether we are waiting for facet data to load.
|
|
25
|
+
* We begin with this set to true so that we show an initial loading indicator.
|
|
26
|
+
*/
|
|
27
|
+
this.facetsLoading = true;
|
|
28
|
+
this.sortedBy = AggregationSortType.COUNT;
|
|
29
|
+
/**
|
|
30
|
+
* An object holding any changes the patron has made to their facet selections
|
|
31
|
+
* within the modal dialog but which they have not yet applied. These are
|
|
32
|
+
* eventually merged into the existing `selectedFacets` when the patron applies
|
|
33
|
+
* their changes, or discarded if they cancel/close the dialog.
|
|
34
|
+
*/
|
|
35
|
+
this.unappliedFacetChanges = getDefaultSelectedFacets();
|
|
36
|
+
/**
|
|
37
|
+
* Which page of facets we are showing.
|
|
38
|
+
*/
|
|
39
|
+
this.pageNumber = 1;
|
|
40
|
+
}
|
|
41
|
+
willUpdate(changed) {
|
|
42
|
+
if (changed.has('aggregations') ||
|
|
43
|
+
changed.has('facetsPerPage') ||
|
|
44
|
+
changed.has('sortedBy') ||
|
|
45
|
+
changed.has('selectedFacets') ||
|
|
46
|
+
changed.has('unappliedFacetChanges')) {
|
|
47
|
+
// Convert the merged selected facets & aggregations into a facet group, and
|
|
48
|
+
// store it for reuse across pages.
|
|
49
|
+
this.facetGroup = this.mergedFacets;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
updated(changed) {
|
|
53
|
+
// If any of the search properties change, it triggers a facet fetch
|
|
54
|
+
if (changed.has('facetKey') ||
|
|
55
|
+
changed.has('query') ||
|
|
56
|
+
changed.has('searchType') ||
|
|
57
|
+
changed.has('filterMap')) {
|
|
58
|
+
this.facetsLoading = true;
|
|
59
|
+
this.pageNumber = 1;
|
|
60
|
+
this.sortedBy = defaultFacetSort[this.facetKey];
|
|
61
|
+
this.updateSpecificFacets();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
firstUpdated() {
|
|
65
|
+
this.setupEscapeListeners();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Close more facets modal on Escape click
|
|
69
|
+
*/
|
|
70
|
+
setupEscapeListeners() {
|
|
71
|
+
if (this.modalManager) {
|
|
72
|
+
document.addEventListener('keydown', (e) => {
|
|
73
|
+
var _a;
|
|
74
|
+
if (e.key === 'Escape') {
|
|
75
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
document.removeEventListener('keydown', () => { });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
85
|
+
*/
|
|
86
|
+
get isSearchResultsPage() {
|
|
87
|
+
var _a;
|
|
88
|
+
// Default page type is search_results when none is specified, so we check
|
|
89
|
+
// for undefined as well.
|
|
90
|
+
const pageType = (_a = this.pageSpecifierParams) === null || _a === void 0 ? void 0 : _a.pageType;
|
|
91
|
+
return pageType === undefined || pageType === 'search_results';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get specific facets data from search-service API based of currently query params
|
|
95
|
+
* - this.aggregations - hold result of search service and being used for further processing.
|
|
96
|
+
*/
|
|
97
|
+
async updateSpecificFacets() {
|
|
98
|
+
var _a, _b, _c, _d, _e, _f;
|
|
99
|
+
if (!this.facetKey)
|
|
100
|
+
return; // Can't fetch facets if we don't know what type of facets we need!
|
|
101
|
+
const trimmedQuery = (_a = this.query) === null || _a === void 0 ? void 0 : _a.trim();
|
|
102
|
+
if (!trimmedQuery && this.isSearchResultsPage)
|
|
103
|
+
return; // The search page _requires_ a query
|
|
104
|
+
const aggregations = {
|
|
105
|
+
simpleParams: [this.facetKey],
|
|
106
|
+
};
|
|
107
|
+
const aggregationsSize = 65535; // todo - do we want to have all the records at once?
|
|
108
|
+
const params = {
|
|
109
|
+
...this.pageSpecifierParams,
|
|
110
|
+
query: trimmedQuery || '',
|
|
111
|
+
filters: this.filterMap,
|
|
112
|
+
aggregations,
|
|
113
|
+
aggregationsSize,
|
|
114
|
+
rows: 0, // todo - do we want server-side pagination with offset/page/limit flag?
|
|
115
|
+
};
|
|
116
|
+
const results = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
|
|
117
|
+
this.aggregations = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response.aggregations;
|
|
118
|
+
this.facetsLoading = false;
|
|
119
|
+
const collectionTitles = (_e = (_d = results === null || results === void 0 ? void 0 : results.success) === null || _d === void 0 ? void 0 : _d.response) === null || _e === void 0 ? void 0 : _e.collectionTitles;
|
|
120
|
+
if (collectionTitles) {
|
|
121
|
+
for (const [id, title] of Object.entries(collectionTitles)) {
|
|
122
|
+
(_f = this.collectionTitles) === null || _f === void 0 ? void 0 : _f.set(id, title);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Handler for page number changes from the pagination widget.
|
|
128
|
+
*/
|
|
129
|
+
pageNumberClicked(e) {
|
|
130
|
+
var _a, _b;
|
|
131
|
+
const page = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.page;
|
|
132
|
+
if (page) {
|
|
133
|
+
this.pageNumber = Number(page);
|
|
134
|
+
}
|
|
135
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
136
|
+
category: analyticsCategories.default,
|
|
137
|
+
action: analyticsActions.moreFacetsPageChange,
|
|
138
|
+
label: `${this.pageNumber}`,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Combines the selected facets with the aggregations to create a single list of facets
|
|
143
|
+
*/
|
|
144
|
+
get mergedFacets() {
|
|
145
|
+
var _a;
|
|
146
|
+
if (!this.facetKey || !this.selectedFacets)
|
|
147
|
+
return undefined;
|
|
148
|
+
const { selectedFacetGroup, aggregationFacetGroup } = this;
|
|
149
|
+
const unappliedFacetBuckets = Object.values(this.unappliedFacetChanges[this.facetKey]);
|
|
150
|
+
// If we don't have any aggregations, then there is nothing to show yet
|
|
151
|
+
if (!aggregationFacetGroup)
|
|
152
|
+
return undefined;
|
|
153
|
+
// Start with either the selected group if we have one, or the aggregate group otherwise
|
|
154
|
+
const facetGroup = { ...(selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregationFacetGroup) };
|
|
155
|
+
// Attach the counts to the selected buckets
|
|
156
|
+
const bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
|
|
157
|
+
const selectedBucket = aggregationFacetGroup.buckets.find(b => b.key === bucket.key);
|
|
158
|
+
return selectedBucket
|
|
159
|
+
? {
|
|
160
|
+
...bucket,
|
|
161
|
+
count: selectedBucket.count,
|
|
162
|
+
}
|
|
163
|
+
: bucket;
|
|
164
|
+
})) !== null && _a !== void 0 ? _a : [];
|
|
165
|
+
// Sort the buckets by selection state
|
|
166
|
+
// We do this *prior* to considering unapplied selections, because we want the facets
|
|
167
|
+
// to remain in position when they are selected/unselected, rather than re-sort themselves.
|
|
168
|
+
sortBucketsBySelectionState(bucketsWithCount, this.sortedBy);
|
|
169
|
+
// Append any additional buckets that were not selected
|
|
170
|
+
aggregationFacetGroup.buckets.forEach(bucket => {
|
|
171
|
+
const existingBucket = bucketsWithCount.find(b => b.key === bucket.key);
|
|
172
|
+
if (existingBucket)
|
|
173
|
+
return;
|
|
174
|
+
bucketsWithCount.push(bucket);
|
|
175
|
+
});
|
|
176
|
+
// Apply any unapplied selections that appear on this page
|
|
177
|
+
for (const bucket of unappliedFacetBuckets) {
|
|
178
|
+
const existingBucketIndex = bucketsWithCount.findIndex(b => b.key === bucket.key);
|
|
179
|
+
if (existingBucketIndex >= 0) {
|
|
180
|
+
bucketsWithCount[existingBucketIndex] = { ...bucket };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
facetGroup.buckets = bucketsWithCount;
|
|
184
|
+
return facetGroup;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Converts the selected facets for the current facet key to a `FacetGroup`,
|
|
188
|
+
* which is easier to work with.
|
|
189
|
+
*/
|
|
190
|
+
get selectedFacetGroup() {
|
|
191
|
+
if (!this.selectedFacets || !this.facetKey)
|
|
192
|
+
return undefined;
|
|
193
|
+
const selectedFacetsForKey = this.selectedFacets[this.facetKey];
|
|
194
|
+
if (!selectedFacetsForKey)
|
|
195
|
+
return undefined;
|
|
196
|
+
const facetGroupTitle = facetTitles[this.facetKey];
|
|
197
|
+
const buckets = Object.entries(selectedFacetsForKey).map(([value, data]) => {
|
|
198
|
+
const displayText = value;
|
|
199
|
+
return {
|
|
200
|
+
displayText,
|
|
201
|
+
key: value,
|
|
202
|
+
count: data === null || data === void 0 ? void 0 : data.count,
|
|
203
|
+
state: data === null || data === void 0 ? void 0 : data.state,
|
|
204
|
+
};
|
|
205
|
+
});
|
|
206
|
+
return {
|
|
207
|
+
title: facetGroupTitle,
|
|
208
|
+
key: this.facetKey,
|
|
209
|
+
buckets,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Converts the raw `aggregations` for the current facet key to a `FacetGroup`,
|
|
214
|
+
* which is easier to work with.
|
|
215
|
+
*/
|
|
216
|
+
get aggregationFacetGroup() {
|
|
217
|
+
if (!this.aggregations || !this.facetKey)
|
|
218
|
+
return undefined;
|
|
219
|
+
const currentAggregation = this.aggregations[this.facetKey];
|
|
220
|
+
if (!currentAggregation)
|
|
221
|
+
return undefined;
|
|
222
|
+
const facetGroupTitle = facetTitles[this.facetKey];
|
|
223
|
+
// Order the facets according to the current sort option
|
|
224
|
+
let sortedBuckets = currentAggregation.getSortedBuckets(this.sortedBy);
|
|
225
|
+
if (this.facetKey === 'collection') {
|
|
226
|
+
// we are not showing fav- collections or certain deemphasized collections in facets
|
|
227
|
+
sortedBuckets = sortedBuckets === null || sortedBuckets === void 0 ? void 0 : sortedBuckets.filter(bucket => {
|
|
228
|
+
var _a;
|
|
229
|
+
const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
|
|
230
|
+
return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
// Construct the array of facet buckets from the aggregation buckets
|
|
234
|
+
const facetBuckets = sortedBuckets.map(bucket => {
|
|
235
|
+
const bucketKeyStr = `${bucket.key}`;
|
|
236
|
+
return {
|
|
237
|
+
displayText: `${bucketKeyStr}`,
|
|
238
|
+
key: `${bucketKeyStr}`,
|
|
239
|
+
count: bucket.doc_count,
|
|
240
|
+
state: 'none',
|
|
241
|
+
};
|
|
242
|
+
});
|
|
243
|
+
return {
|
|
244
|
+
title: facetGroupTitle,
|
|
245
|
+
key: this.facetKey,
|
|
246
|
+
buckets: facetBuckets,
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Returns a FacetGroup representing only the current page of facet buckets to show.
|
|
251
|
+
*/
|
|
252
|
+
get facetGroupForCurrentPage() {
|
|
253
|
+
const { facetGroup } = this;
|
|
254
|
+
if (!facetGroup)
|
|
255
|
+
return undefined;
|
|
256
|
+
// Slice out only the current page of facet buckets
|
|
257
|
+
const firstBucketIndexOnPage = (this.pageNumber - 1) * this.facetsPerPage;
|
|
258
|
+
const truncatedBuckets = facetGroup.buckets.slice(firstBucketIndexOnPage, firstBucketIndexOnPage + this.facetsPerPage);
|
|
259
|
+
return {
|
|
260
|
+
...facetGroup,
|
|
261
|
+
buckets: truncatedBuckets,
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
get moreFacetsTemplate() {
|
|
230
265
|
return html `
|
|
231
266
|
<facets-template
|
|
232
|
-
.facetGroup=${
|
|
267
|
+
.facetGroup=${this.facetGroupForCurrentPage}
|
|
233
268
|
.selectedFacets=${this.selectedFacets}
|
|
234
|
-
.renderOn=${'modal'}
|
|
235
269
|
.collectionTitles=${this.collectionTitles}
|
|
236
|
-
@
|
|
237
|
-
this.
|
|
270
|
+
@facetClick=${(e) => {
|
|
271
|
+
if (this.facetKey) {
|
|
272
|
+
this.unappliedFacetChanges = updateSelectedFacetBucket(this.unappliedFacetChanges, this.facetKey, e.detail.bucket);
|
|
273
|
+
}
|
|
238
274
|
}}
|
|
239
275
|
></facets-template>
|
|
240
|
-
`;
|
|
241
|
-
}
|
|
242
|
-
get loaderTemplate() {
|
|
276
|
+
`;
|
|
277
|
+
}
|
|
278
|
+
get loaderTemplate() {
|
|
243
279
|
return html `<div class="facets-loader">
|
|
244
280
|
<ia-activity-indicator .mode=${'processing'}></ia-activity-indicator>
|
|
245
|
-
</div> `;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
281
|
+
</div> `;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* How many pages of facets to show in the modal pagination widget
|
|
285
|
+
*/
|
|
286
|
+
get paginationSize() {
|
|
287
|
+
var _a;
|
|
288
|
+
if (!this.aggregations || !this.facetKey)
|
|
289
|
+
return 0;
|
|
290
|
+
// Calculate the appropriate number of pages to show in the modal pagination widget
|
|
291
|
+
const length = (_a = this.aggregations[this.facetKey]) === null || _a === void 0 ? void 0 : _a.buckets.length;
|
|
292
|
+
return Math.ceil(length / this.facetsPerPage);
|
|
293
|
+
}
|
|
294
|
+
// render pagination if more then 1 page
|
|
295
|
+
get facetsPaginationTemplate() {
|
|
296
|
+
return this.paginationSize > 1
|
|
250
297
|
? html `<more-facets-pagination
|
|
251
298
|
.size=${this.paginationSize}
|
|
252
299
|
.currentPage=${1}
|
|
253
300
|
@pageNumberClicked=${this.pageNumberClicked}
|
|
254
|
-
></more-facets-pagination>`
|
|
255
|
-
: nothing;
|
|
256
|
-
}
|
|
257
|
-
get footerTemplate() {
|
|
258
|
-
if (this.paginationSize > 0) {
|
|
301
|
+
></more-facets-pagination>`
|
|
302
|
+
: nothing;
|
|
303
|
+
}
|
|
304
|
+
get footerTemplate() {
|
|
305
|
+
if (this.paginationSize > 0) {
|
|
259
306
|
return html `${this.facetsPaginationTemplate}
|
|
260
307
|
<div class="footer">
|
|
261
308
|
<button
|
|
@@ -272,92 +319,87 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
272
319
|
>
|
|
273
320
|
Apply filters
|
|
274
321
|
</button>
|
|
275
|
-
</div> `;
|
|
276
|
-
}
|
|
277
|
-
return nothing;
|
|
278
|
-
}
|
|
279
|
-
sortFacetAggregation(facetSortType) {
|
|
280
|
-
this.sortedBy = facetSortType;
|
|
281
|
-
this.dispatchEvent(new CustomEvent('sortedFacets', { detail: this.sortedBy }));
|
|
282
|
-
}
|
|
283
|
-
get
|
|
284
|
-
var _a;
|
|
285
|
-
const facetSort = (_a = this.sortedBy) !== null && _a !== void 0 ? _a : defaultFacetSort[this.facetKey];
|
|
286
|
-
const defaultSwitchSide = facetSort === AggregationSortType.COUNT ? 'left' : 'right';
|
|
287
|
-
return html `<span class="sr-only"
|
|
322
|
+
</div> `;
|
|
323
|
+
}
|
|
324
|
+
return nothing;
|
|
325
|
+
}
|
|
326
|
+
sortFacetAggregation(facetSortType) {
|
|
327
|
+
this.sortedBy = facetSortType;
|
|
328
|
+
this.dispatchEvent(new CustomEvent('sortedFacets', { detail: this.sortedBy }));
|
|
329
|
+
}
|
|
330
|
+
get modalHeaderTemplate() {
|
|
331
|
+
var _a, _b, _c;
|
|
332
|
+
const facetSort = (_a = this.sortedBy) !== null && _a !== void 0 ? _a : defaultFacetSort[this.facetKey];
|
|
333
|
+
const defaultSwitchSide = facetSort === AggregationSortType.COUNT ? 'left' : 'right';
|
|
334
|
+
return html `<span class="sr-only">${msg('More facets for:')}</span>
|
|
288
335
|
<span class="title">
|
|
289
|
-
${this.
|
|
336
|
+
${(_b = this.facetGroup) === null || _b === void 0 ? void 0 : _b.title}
|
|
290
337
|
|
|
291
|
-
<label class="sort-label"
|
|
292
|
-
${this.facetKey
|
|
338
|
+
<label class="sort-label">${msg('Sort by:')}</label>
|
|
339
|
+
${this.facetKey
|
|
293
340
|
? html `<toggle-switch
|
|
294
341
|
class="sort-toggle"
|
|
295
342
|
leftValue=${AggregationSortType.COUNT}
|
|
296
343
|
leftLabel="Count"
|
|
297
344
|
rightValue=${valueFacetSort[this.facetKey]}
|
|
298
|
-
rightLabel=${this.
|
|
345
|
+
rightLabel=${(_c = this.facetGroup) === null || _c === void 0 ? void 0 : _c.title}
|
|
299
346
|
side=${defaultSwitchSide}
|
|
300
|
-
@change=${(e) => {
|
|
301
|
-
this.sortFacetAggregation(Number(e.detail));
|
|
347
|
+
@change=${(e) => {
|
|
348
|
+
this.sortFacetAggregation(Number(e.detail));
|
|
302
349
|
}}
|
|
303
|
-
></toggle-switch>`
|
|
350
|
+
></toggle-switch>`
|
|
304
351
|
: nothing}
|
|
305
|
-
</span>`;
|
|
306
|
-
}
|
|
307
|
-
render() {
|
|
352
|
+
</span>`;
|
|
353
|
+
}
|
|
354
|
+
render() {
|
|
308
355
|
return html `
|
|
309
|
-
${this.facetsLoading
|
|
310
|
-
? this.loaderTemplate
|
|
356
|
+
${this.facetsLoading
|
|
357
|
+
? this.loaderTemplate
|
|
311
358
|
: html `
|
|
312
359
|
<section id="more-facets">
|
|
313
|
-
<div class="header-content">${this.
|
|
314
|
-
<div class="facets-content">${this.
|
|
360
|
+
<div class="header-content">${this.modalHeaderTemplate}</div>
|
|
361
|
+
<div class="facets-content">${this.moreFacetsTemplate}</div>
|
|
315
362
|
${this.footerTemplate}
|
|
316
363
|
</section>
|
|
317
364
|
`}
|
|
318
|
-
`;
|
|
319
|
-
}
|
|
320
|
-
applySearchFacetsClicked() {
|
|
321
|
-
var _a, _b;
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
365
|
+
`;
|
|
366
|
+
}
|
|
367
|
+
applySearchFacetsClicked() {
|
|
368
|
+
var _a, _b;
|
|
369
|
+
const mergedSelections = mergeSelectedFacets(this.selectedFacets, this.unappliedFacetChanges);
|
|
370
|
+
const event = new CustomEvent('facetsChanged', {
|
|
371
|
+
detail: mergedSelections,
|
|
372
|
+
bubbles: true,
|
|
373
|
+
composed: true,
|
|
374
|
+
});
|
|
375
|
+
this.dispatchEvent(event);
|
|
376
|
+
// Reset the unapplied changes back to default, now that they have been applied
|
|
377
|
+
this.unappliedFacetChanges = getDefaultSelectedFacets();
|
|
378
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
379
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
380
|
+
category: analyticsCategories.default,
|
|
381
|
+
action: `${analyticsActions.applyMoreFacetsModal}`,
|
|
382
|
+
label: `${this.facetKey}`,
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
cancelClick() {
|
|
386
|
+
var _a, _b;
|
|
387
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
388
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
389
|
+
category: analyticsCategories.default,
|
|
390
|
+
action: analyticsActions.closeMoreFacetsModal,
|
|
391
|
+
label: `${this.facetKey}`,
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
static get styles() {
|
|
395
|
+
const modalSubmitButton = css `var(--primaryButtonBGColor, #194880)`;
|
|
396
|
+
return [
|
|
397
|
+
srOnlyStyle,
|
|
348
398
|
css `
|
|
349
|
-
@media (max-width: 560px) {
|
|
350
|
-
section#more-facets {
|
|
351
|
-
max-height: 450px;
|
|
352
|
-
}
|
|
353
|
-
.facets-content {
|
|
354
|
-
overflow-y: auto;
|
|
355
|
-
height: 300px;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
399
|
section#more-facets {
|
|
359
400
|
overflow: auto;
|
|
360
401
|
padding: 10px; /* leaves room for scroll bar to appear without overlaying on content */
|
|
402
|
+
--facetsColumnCount: 3;
|
|
361
403
|
}
|
|
362
404
|
.header-content .title {
|
|
363
405
|
display: block;
|
|
@@ -409,69 +451,74 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
409
451
|
text-align: center;
|
|
410
452
|
margin-top: 10px;
|
|
411
453
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
]
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
454
|
+
|
|
455
|
+
@media (max-width: 560px) {
|
|
456
|
+
section#more-facets {
|
|
457
|
+
max-height: 450px;
|
|
458
|
+
--facetsColumnCount: 1;
|
|
459
|
+
}
|
|
460
|
+
.facets-content {
|
|
461
|
+
overflow-y: auto;
|
|
462
|
+
height: 300px;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
`,
|
|
466
|
+
];
|
|
467
|
+
}
|
|
468
|
+
};
|
|
469
|
+
__decorate([
|
|
470
|
+
property({ type: String })
|
|
471
|
+
], MoreFacetsContent.prototype, "facetKey", void 0);
|
|
472
|
+
__decorate([
|
|
473
|
+
property({ type: String })
|
|
474
|
+
], MoreFacetsContent.prototype, "query", void 0);
|
|
475
|
+
__decorate([
|
|
476
|
+
property({ type: Object })
|
|
477
|
+
], MoreFacetsContent.prototype, "filterMap", void 0);
|
|
478
|
+
__decorate([
|
|
479
|
+
property({ type: String })
|
|
480
|
+
], MoreFacetsContent.prototype, "searchType", void 0);
|
|
481
|
+
__decorate([
|
|
482
|
+
property({ type: Object })
|
|
483
|
+
], MoreFacetsContent.prototype, "pageSpecifierParams", void 0);
|
|
484
|
+
__decorate([
|
|
485
|
+
property({ type: Object })
|
|
486
|
+
], MoreFacetsContent.prototype, "collectionTitles", void 0);
|
|
487
|
+
__decorate([
|
|
488
|
+
property({ type: Number })
|
|
489
|
+
], MoreFacetsContent.prototype, "facetsPerPage", void 0);
|
|
490
|
+
__decorate([
|
|
491
|
+
property({ type: Boolean })
|
|
492
|
+
], MoreFacetsContent.prototype, "facetsLoading", void 0);
|
|
493
|
+
__decorate([
|
|
494
|
+
property({ type: Object })
|
|
495
|
+
], MoreFacetsContent.prototype, "selectedFacets", void 0);
|
|
496
|
+
__decorate([
|
|
497
|
+
property({ type: String })
|
|
498
|
+
], MoreFacetsContent.prototype, "sortedBy", void 0);
|
|
499
|
+
__decorate([
|
|
500
|
+
property({ type: Object })
|
|
501
|
+
], MoreFacetsContent.prototype, "modalManager", void 0);
|
|
502
|
+
__decorate([
|
|
503
|
+
property({ type: Object })
|
|
504
|
+
], MoreFacetsContent.prototype, "searchService", void 0);
|
|
505
|
+
__decorate([
|
|
506
|
+
property({ type: Object, attribute: false })
|
|
507
|
+
], MoreFacetsContent.prototype, "analyticsHandler", void 0);
|
|
508
|
+
__decorate([
|
|
509
|
+
state()
|
|
510
|
+
], MoreFacetsContent.prototype, "aggregations", void 0);
|
|
511
|
+
__decorate([
|
|
512
|
+
state()
|
|
513
|
+
], MoreFacetsContent.prototype, "facetGroup", void 0);
|
|
514
|
+
__decorate([
|
|
515
|
+
state()
|
|
516
|
+
], MoreFacetsContent.prototype, "unappliedFacetChanges", void 0);
|
|
517
|
+
__decorate([
|
|
518
|
+
state()
|
|
519
|
+
], MoreFacetsContent.prototype, "pageNumber", void 0);
|
|
520
|
+
MoreFacetsContent = __decorate([
|
|
521
|
+
customElement('more-facets-content')
|
|
522
|
+
], MoreFacetsContent);
|
|
523
|
+
export { MoreFacetsContent };
|
|
477
524
|
//# sourceMappingURL=more-facets-content.js.map
|