@internetarchive/collection-browser 2.3.0 → 2.4.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 +1475 -1475
- package/dist/src/collection-facets/facet-row.d.ts +30 -30
- package/dist/src/collection-facets/facet-row.js +114 -114
- 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 +114 -114
- 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 +510 -510
- 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 +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/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,261 +1,261 @@
|
|
|
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 { facetTitles, suppressedCollections, valueFacetSort, defaultFacetSort, } from '../models';
|
|
8
|
-
import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
|
|
9
|
-
import './more-facets-pagination';
|
|
10
|
-
import './facets-template';
|
|
11
|
-
import { analyticsActions, analyticsCategories, } from '../utils/analytics-events';
|
|
12
|
-
import './toggle-switch';
|
|
13
|
-
import { srOnlyStyle } from '../styles/sr-only';
|
|
14
|
-
let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
15
|
-
constructor() {
|
|
16
|
-
super(...arguments);
|
|
17
|
-
this.sortedBy = AggregationSortType.COUNT;
|
|
18
|
-
this.facetGroup = [];
|
|
19
|
-
this.facetGroupTitle = '';
|
|
20
|
-
this.pageNumber = 1;
|
|
21
|
-
/**
|
|
22
|
-
* Facets are loading on popup
|
|
23
|
-
*/
|
|
24
|
-
this.facetsLoading = true;
|
|
25
|
-
this.paginationSize = 0;
|
|
26
|
-
this.facetsType = 'modal';
|
|
27
|
-
this.facetsPerPage = 35;
|
|
28
|
-
}
|
|
29
|
-
updated(changed) {
|
|
30
|
-
if (changed.has('facetKey') ||
|
|
31
|
-
changed.has('facetAggregationKey') ||
|
|
32
|
-
changed.has('query') ||
|
|
33
|
-
changed.has('searchType') ||
|
|
34
|
-
changed.has('filterMap')) {
|
|
35
|
-
this.facetsLoading = true;
|
|
36
|
-
this.pageNumber = 1;
|
|
37
|
-
this.sortedBy = defaultFacetSort[this.facetKey];
|
|
38
|
-
this.updateSpecificFacets();
|
|
39
|
-
}
|
|
40
|
-
if (changed.has('pageNumber')) {
|
|
41
|
-
this.facetGroup = this.aggregationFacetGroups;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
firstUpdated() {
|
|
45
|
-
this.setupEscapeListeners();
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Close more facets modal on Escape click
|
|
49
|
-
*/
|
|
50
|
-
setupEscapeListeners() {
|
|
51
|
-
if (this.modalManager) {
|
|
52
|
-
document.addEventListener('keydown', (e) => {
|
|
53
|
-
var _a;
|
|
54
|
-
if (e.key === 'Escape') {
|
|
55
|
-
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
document.removeEventListener('keydown', () => { });
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
65
|
-
*/
|
|
66
|
-
get isSearchResultsPage() {
|
|
67
|
-
var _a;
|
|
68
|
-
// Default page type is search_results when none is specified, so we check
|
|
69
|
-
// for undefined as well.
|
|
70
|
-
const pageType = (_a = this.pageSpecifierParams) === null || _a === void 0 ? void 0 : _a.pageType;
|
|
71
|
-
return pageType === undefined || pageType === 'search_results';
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get specific facets data from search-service API based of currently query params
|
|
75
|
-
* - this.aggregations - hold result of search service and being used for further processing.
|
|
76
|
-
*/
|
|
77
|
-
async updateSpecificFacets() {
|
|
78
|
-
var _a, _b, _c, _d, _e, _f;
|
|
79
|
-
const trimmedQuery = (_a = this.query) === null || _a === void 0 ? void 0 : _a.trim();
|
|
80
|
-
if (!trimmedQuery && this.isSearchResultsPage)
|
|
81
|
-
return; // The search page _requires_ a query
|
|
82
|
-
const aggregations = {
|
|
83
|
-
simpleParams: [this.facetAggregationKey],
|
|
84
|
-
};
|
|
85
|
-
const aggregationsSize = 65535; // todo - do we want to have all the records at once?
|
|
86
|
-
const params = {
|
|
87
|
-
...this.pageSpecifierParams,
|
|
88
|
-
query: trimmedQuery || '',
|
|
89
|
-
filters: this.filterMap,
|
|
90
|
-
aggregations,
|
|
91
|
-
aggregationsSize,
|
|
92
|
-
rows: 0, // todo - do we want server-side pagination with offset/page/limit flag?
|
|
93
|
-
};
|
|
94
|
-
const results = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
|
|
95
|
-
this.aggregations = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response.aggregations;
|
|
96
|
-
this.facetGroup = this.aggregationFacetGroups;
|
|
97
|
-
this.facetsLoading = false;
|
|
98
|
-
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;
|
|
99
|
-
if (collectionTitles) {
|
|
100
|
-
for (const [id, title] of Object.entries(collectionTitles)) {
|
|
101
|
-
(_f = this.collectionTitles) === null || _f === void 0 ? void 0 : _f.set(id, title);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
pageNumberClicked(e) {
|
|
106
|
-
var _a, _b;
|
|
107
|
-
const page = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.page;
|
|
108
|
-
if (page) {
|
|
109
|
-
this.pageNumber = Number(page);
|
|
110
|
-
}
|
|
111
|
-
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
112
|
-
category: analyticsCategories.default,
|
|
113
|
-
action: analyticsActions.moreFacetsPageChange,
|
|
114
|
-
label: `${this.pageNumber}`,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Combines the selected facets with the aggregations to create a single list of facets
|
|
119
|
-
*/
|
|
120
|
-
get mergedFacets() {
|
|
121
|
-
var _a;
|
|
122
|
-
const facetGroups = [];
|
|
123
|
-
const selectedFacetGroup = this.selectedFacetGroups.find(group => group.key === this.facetKey);
|
|
124
|
-
const aggregateFacetGroup = this.aggregationFacetGroups.find(group => group.key === this.facetKey);
|
|
125
|
-
// if the user selected a facet, but it's not in the aggregation, we add it as-is
|
|
126
|
-
if (selectedFacetGroup && !aggregateFacetGroup) {
|
|
127
|
-
facetGroups.push(selectedFacetGroup);
|
|
128
|
-
return facetGroups;
|
|
129
|
-
}
|
|
130
|
-
// if we don't have an aggregate facet group, don't add this to the list
|
|
131
|
-
if (!aggregateFacetGroup)
|
|
132
|
-
return facetGroups;
|
|
133
|
-
// start with either the selected group if we have one, or the aggregate group
|
|
134
|
-
const facetGroup = selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregateFacetGroup;
|
|
135
|
-
// attach the counts to the selected buckets
|
|
136
|
-
const bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
|
|
137
|
-
const selectedBucket = aggregateFacetGroup.buckets.find(b => b.key === bucket.key);
|
|
138
|
-
return selectedBucket
|
|
139
|
-
? {
|
|
140
|
-
...bucket,
|
|
141
|
-
count: selectedBucket.count,
|
|
142
|
-
}
|
|
143
|
-
: bucket;
|
|
144
|
-
})) !== null && _a !== void 0 ? _a : [];
|
|
145
|
-
// append any additional buckets that were not selected
|
|
146
|
-
aggregateFacetGroup.buckets.forEach(bucket => {
|
|
147
|
-
const existingBucket = bucketsWithCount.find(b => b.key === bucket.key);
|
|
148
|
-
if (existingBucket)
|
|
149
|
-
return;
|
|
150
|
-
bucketsWithCount.push(bucket);
|
|
151
|
-
});
|
|
152
|
-
facetGroup.buckets = bucketsWithCount;
|
|
153
|
-
facetGroups.push(facetGroup);
|
|
154
|
-
return facetGroups;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Converts the selected facets to a `FacetGroup` array,
|
|
158
|
-
* which is easier to work with
|
|
159
|
-
*/
|
|
160
|
-
get selectedFacetGroups() {
|
|
161
|
-
if (!this.selectedFacets)
|
|
162
|
-
return [];
|
|
163
|
-
const facetGroups = Object.entries(this.selectedFacets).map(([key, selectedFacets]) => {
|
|
164
|
-
const option = key;
|
|
165
|
-
const title = facetTitles[option];
|
|
166
|
-
const buckets = Object.entries(selectedFacets).map(([value, data]) => {
|
|
167
|
-
const displayText = value;
|
|
168
|
-
return {
|
|
169
|
-
displayText,
|
|
170
|
-
key: value,
|
|
171
|
-
count: data === null || data === void 0 ? void 0 : data.count,
|
|
172
|
-
state: data === null || data === void 0 ? void 0 : data.state,
|
|
173
|
-
};
|
|
174
|
-
});
|
|
175
|
-
return {
|
|
176
|
-
title,
|
|
177
|
-
key: option,
|
|
178
|
-
buckets,
|
|
179
|
-
};
|
|
180
|
-
});
|
|
181
|
-
return facetGroups;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Converts the raw `aggregations` to `FacetGroups`, which are easier to use
|
|
185
|
-
*/
|
|
186
|
-
get aggregationFacetGroups() {
|
|
187
|
-
var _a;
|
|
188
|
-
const facetGroups = [];
|
|
189
|
-
Object.entries((_a = this.aggregations) !== null && _a !== void 0 ? _a : []).forEach(([key, aggregation]) => {
|
|
190
|
-
// the year_histogram data is in a different format so can't be handled here
|
|
191
|
-
if (key === 'year_histogram')
|
|
192
|
-
return;
|
|
193
|
-
const option = key;
|
|
194
|
-
this.facetGroupTitle = facetTitles[option];
|
|
195
|
-
// sort facets in specific order
|
|
196
|
-
let castedBuckets = aggregation.getSortedBuckets(this.sortedBy);
|
|
197
|
-
if (option === 'collection') {
|
|
198
|
-
// we are not showing fav- collections or certain deemphasized collections in facets
|
|
199
|
-
castedBuckets = castedBuckets === null || castedBuckets === void 0 ? void 0 : castedBuckets.filter(bucket => {
|
|
200
|
-
var _a;
|
|
201
|
-
const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
|
|
202
|
-
return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
// find length and pagination size for modal pagination
|
|
206
|
-
const { length } = Object.keys(castedBuckets);
|
|
207
|
-
this.paginationSize = Math.ceil(length / this.facetsPerPage);
|
|
208
|
-
// render only items which will be visible as per this.facetsPerPage
|
|
209
|
-
const bucketsMaxSix = castedBuckets === null || castedBuckets === void 0 ? void 0 : castedBuckets.slice((this.pageNumber - 1) * this.facetsPerPage, this.pageNumber * this.facetsPerPage);
|
|
210
|
-
const facetBucket = bucketsMaxSix.map(bucket => {
|
|
211
|
-
const bucketKey = bucket.key;
|
|
212
|
-
return {
|
|
213
|
-
displayText: `${bucket.key}`,
|
|
214
|
-
key: `${bucketKey}`,
|
|
215
|
-
count: bucket.doc_count,
|
|
216
|
-
state: 'none',
|
|
217
|
-
};
|
|
218
|
-
});
|
|
219
|
-
const group = {
|
|
220
|
-
title: this.facetGroupTitle,
|
|
221
|
-
key: option,
|
|
222
|
-
buckets: facetBucket,
|
|
223
|
-
};
|
|
224
|
-
facetGroups.push(group);
|
|
225
|
-
});
|
|
226
|
-
return facetGroups;
|
|
227
|
-
}
|
|
228
|
-
get getMoreFacetsTemplate() {
|
|
229
|
-
var _a;
|
|
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 { facetTitles, suppressedCollections, valueFacetSort, defaultFacetSort, } from '../models';
|
|
8
|
+
import '@internetarchive/ia-activity-indicator/ia-activity-indicator';
|
|
9
|
+
import './more-facets-pagination';
|
|
10
|
+
import './facets-template';
|
|
11
|
+
import { analyticsActions, analyticsCategories, } from '../utils/analytics-events';
|
|
12
|
+
import './toggle-switch';
|
|
13
|
+
import { srOnlyStyle } from '../styles/sr-only';
|
|
14
|
+
let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.sortedBy = AggregationSortType.COUNT;
|
|
18
|
+
this.facetGroup = [];
|
|
19
|
+
this.facetGroupTitle = '';
|
|
20
|
+
this.pageNumber = 1;
|
|
21
|
+
/**
|
|
22
|
+
* Facets are loading on popup
|
|
23
|
+
*/
|
|
24
|
+
this.facetsLoading = true;
|
|
25
|
+
this.paginationSize = 0;
|
|
26
|
+
this.facetsType = 'modal';
|
|
27
|
+
this.facetsPerPage = 35;
|
|
28
|
+
}
|
|
29
|
+
updated(changed) {
|
|
30
|
+
if (changed.has('facetKey') ||
|
|
31
|
+
changed.has('facetAggregationKey') ||
|
|
32
|
+
changed.has('query') ||
|
|
33
|
+
changed.has('searchType') ||
|
|
34
|
+
changed.has('filterMap')) {
|
|
35
|
+
this.facetsLoading = true;
|
|
36
|
+
this.pageNumber = 1;
|
|
37
|
+
this.sortedBy = defaultFacetSort[this.facetKey];
|
|
38
|
+
this.updateSpecificFacets();
|
|
39
|
+
}
|
|
40
|
+
if (changed.has('pageNumber')) {
|
|
41
|
+
this.facetGroup = this.aggregationFacetGroups;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
firstUpdated() {
|
|
45
|
+
this.setupEscapeListeners();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Close more facets modal on Escape click
|
|
49
|
+
*/
|
|
50
|
+
setupEscapeListeners() {
|
|
51
|
+
if (this.modalManager) {
|
|
52
|
+
document.addEventListener('keydown', (e) => {
|
|
53
|
+
var _a;
|
|
54
|
+
if (e.key === 'Escape') {
|
|
55
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
document.removeEventListener('keydown', () => { });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Whether facet requests are for the search_results page type (either defaulted or explicitly).
|
|
65
|
+
*/
|
|
66
|
+
get isSearchResultsPage() {
|
|
67
|
+
var _a;
|
|
68
|
+
// Default page type is search_results when none is specified, so we check
|
|
69
|
+
// for undefined as well.
|
|
70
|
+
const pageType = (_a = this.pageSpecifierParams) === null || _a === void 0 ? void 0 : _a.pageType;
|
|
71
|
+
return pageType === undefined || pageType === 'search_results';
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get specific facets data from search-service API based of currently query params
|
|
75
|
+
* - this.aggregations - hold result of search service and being used for further processing.
|
|
76
|
+
*/
|
|
77
|
+
async updateSpecificFacets() {
|
|
78
|
+
var _a, _b, _c, _d, _e, _f;
|
|
79
|
+
const trimmedQuery = (_a = this.query) === null || _a === void 0 ? void 0 : _a.trim();
|
|
80
|
+
if (!trimmedQuery && this.isSearchResultsPage)
|
|
81
|
+
return; // The search page _requires_ a query
|
|
82
|
+
const aggregations = {
|
|
83
|
+
simpleParams: [this.facetAggregationKey],
|
|
84
|
+
};
|
|
85
|
+
const aggregationsSize = 65535; // todo - do we want to have all the records at once?
|
|
86
|
+
const params = {
|
|
87
|
+
...this.pageSpecifierParams,
|
|
88
|
+
query: trimmedQuery || '',
|
|
89
|
+
filters: this.filterMap,
|
|
90
|
+
aggregations,
|
|
91
|
+
aggregationsSize,
|
|
92
|
+
rows: 0, // todo - do we want server-side pagination with offset/page/limit flag?
|
|
93
|
+
};
|
|
94
|
+
const results = await ((_b = this.searchService) === null || _b === void 0 ? void 0 : _b.search(params, this.searchType));
|
|
95
|
+
this.aggregations = (_c = results === null || results === void 0 ? void 0 : results.success) === null || _c === void 0 ? void 0 : _c.response.aggregations;
|
|
96
|
+
this.facetGroup = this.aggregationFacetGroups;
|
|
97
|
+
this.facetsLoading = false;
|
|
98
|
+
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;
|
|
99
|
+
if (collectionTitles) {
|
|
100
|
+
for (const [id, title] of Object.entries(collectionTitles)) {
|
|
101
|
+
(_f = this.collectionTitles) === null || _f === void 0 ? void 0 : _f.set(id, title);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
pageNumberClicked(e) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
const page = (_a = e === null || e === void 0 ? void 0 : e.detail) === null || _a === void 0 ? void 0 : _a.page;
|
|
108
|
+
if (page) {
|
|
109
|
+
this.pageNumber = Number(page);
|
|
110
|
+
}
|
|
111
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
112
|
+
category: analyticsCategories.default,
|
|
113
|
+
action: analyticsActions.moreFacetsPageChange,
|
|
114
|
+
label: `${this.pageNumber}`,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Combines the selected facets with the aggregations to create a single list of facets
|
|
119
|
+
*/
|
|
120
|
+
get mergedFacets() {
|
|
121
|
+
var _a;
|
|
122
|
+
const facetGroups = [];
|
|
123
|
+
const selectedFacetGroup = this.selectedFacetGroups.find(group => group.key === this.facetKey);
|
|
124
|
+
const aggregateFacetGroup = this.aggregationFacetGroups.find(group => group.key === this.facetKey);
|
|
125
|
+
// if the user selected a facet, but it's not in the aggregation, we add it as-is
|
|
126
|
+
if (selectedFacetGroup && !aggregateFacetGroup) {
|
|
127
|
+
facetGroups.push(selectedFacetGroup);
|
|
128
|
+
return facetGroups;
|
|
129
|
+
}
|
|
130
|
+
// if we don't have an aggregate facet group, don't add this to the list
|
|
131
|
+
if (!aggregateFacetGroup)
|
|
132
|
+
return facetGroups;
|
|
133
|
+
// start with either the selected group if we have one, or the aggregate group
|
|
134
|
+
const facetGroup = selectedFacetGroup !== null && selectedFacetGroup !== void 0 ? selectedFacetGroup : aggregateFacetGroup;
|
|
135
|
+
// attach the counts to the selected buckets
|
|
136
|
+
const bucketsWithCount = (_a = selectedFacetGroup === null || selectedFacetGroup === void 0 ? void 0 : selectedFacetGroup.buckets.map(bucket => {
|
|
137
|
+
const selectedBucket = aggregateFacetGroup.buckets.find(b => b.key === bucket.key);
|
|
138
|
+
return selectedBucket
|
|
139
|
+
? {
|
|
140
|
+
...bucket,
|
|
141
|
+
count: selectedBucket.count,
|
|
142
|
+
}
|
|
143
|
+
: bucket;
|
|
144
|
+
})) !== null && _a !== void 0 ? _a : [];
|
|
145
|
+
// append any additional buckets that were not selected
|
|
146
|
+
aggregateFacetGroup.buckets.forEach(bucket => {
|
|
147
|
+
const existingBucket = bucketsWithCount.find(b => b.key === bucket.key);
|
|
148
|
+
if (existingBucket)
|
|
149
|
+
return;
|
|
150
|
+
bucketsWithCount.push(bucket);
|
|
151
|
+
});
|
|
152
|
+
facetGroup.buckets = bucketsWithCount;
|
|
153
|
+
facetGroups.push(facetGroup);
|
|
154
|
+
return facetGroups;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Converts the selected facets to a `FacetGroup` array,
|
|
158
|
+
* which is easier to work with
|
|
159
|
+
*/
|
|
160
|
+
get selectedFacetGroups() {
|
|
161
|
+
if (!this.selectedFacets)
|
|
162
|
+
return [];
|
|
163
|
+
const facetGroups = Object.entries(this.selectedFacets).map(([key, selectedFacets]) => {
|
|
164
|
+
const option = key;
|
|
165
|
+
const title = facetTitles[option];
|
|
166
|
+
const buckets = Object.entries(selectedFacets).map(([value, data]) => {
|
|
167
|
+
const displayText = value;
|
|
168
|
+
return {
|
|
169
|
+
displayText,
|
|
170
|
+
key: value,
|
|
171
|
+
count: data === null || data === void 0 ? void 0 : data.count,
|
|
172
|
+
state: data === null || data === void 0 ? void 0 : data.state,
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
return {
|
|
176
|
+
title,
|
|
177
|
+
key: option,
|
|
178
|
+
buckets,
|
|
179
|
+
};
|
|
180
|
+
});
|
|
181
|
+
return facetGroups;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Converts the raw `aggregations` to `FacetGroups`, which are easier to use
|
|
185
|
+
*/
|
|
186
|
+
get aggregationFacetGroups() {
|
|
187
|
+
var _a;
|
|
188
|
+
const facetGroups = [];
|
|
189
|
+
Object.entries((_a = this.aggregations) !== null && _a !== void 0 ? _a : []).forEach(([key, aggregation]) => {
|
|
190
|
+
// the year_histogram data is in a different format so can't be handled here
|
|
191
|
+
if (key === 'year_histogram')
|
|
192
|
+
return;
|
|
193
|
+
const option = key;
|
|
194
|
+
this.facetGroupTitle = facetTitles[option];
|
|
195
|
+
// sort facets in specific order
|
|
196
|
+
let castedBuckets = aggregation.getSortedBuckets(this.sortedBy);
|
|
197
|
+
if (option === 'collection') {
|
|
198
|
+
// we are not showing fav- collections or certain deemphasized collections in facets
|
|
199
|
+
castedBuckets = castedBuckets === null || castedBuckets === void 0 ? void 0 : castedBuckets.filter(bucket => {
|
|
200
|
+
var _a;
|
|
201
|
+
const bucketKey = (_a = bucket === null || bucket === void 0 ? void 0 : bucket.key) === null || _a === void 0 ? void 0 : _a.toString();
|
|
202
|
+
return (!suppressedCollections[bucketKey] && !(bucketKey === null || bucketKey === void 0 ? void 0 : bucketKey.startsWith('fav-')));
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
// find length and pagination size for modal pagination
|
|
206
|
+
const { length } = Object.keys(castedBuckets);
|
|
207
|
+
this.paginationSize = Math.ceil(length / this.facetsPerPage);
|
|
208
|
+
// render only items which will be visible as per this.facetsPerPage
|
|
209
|
+
const bucketsMaxSix = castedBuckets === null || castedBuckets === void 0 ? void 0 : castedBuckets.slice((this.pageNumber - 1) * this.facetsPerPage, this.pageNumber * this.facetsPerPage);
|
|
210
|
+
const facetBucket = bucketsMaxSix.map(bucket => {
|
|
211
|
+
const bucketKey = bucket.key;
|
|
212
|
+
return {
|
|
213
|
+
displayText: `${bucket.key}`,
|
|
214
|
+
key: `${bucketKey}`,
|
|
215
|
+
count: bucket.doc_count,
|
|
216
|
+
state: 'none',
|
|
217
|
+
};
|
|
218
|
+
});
|
|
219
|
+
const group = {
|
|
220
|
+
title: this.facetGroupTitle,
|
|
221
|
+
key: option,
|
|
222
|
+
buckets: facetBucket,
|
|
223
|
+
};
|
|
224
|
+
facetGroups.push(group);
|
|
225
|
+
});
|
|
226
|
+
return facetGroups;
|
|
227
|
+
}
|
|
228
|
+
get getMoreFacetsTemplate() {
|
|
229
|
+
var _a;
|
|
230
230
|
return html `
|
|
231
231
|
<facets-template
|
|
232
232
|
.facetGroup=${(_a = this.mergedFacets) === null || _a === void 0 ? void 0 : _a.shift()}
|
|
233
233
|
.selectedFacets=${this.selectedFacets}
|
|
234
234
|
.renderOn=${'modal'}
|
|
235
235
|
.collectionTitles=${this.collectionTitles}
|
|
236
|
-
@selectedFacetsChanged=${(e) => {
|
|
237
|
-
this.selectedFacets = e.detail;
|
|
236
|
+
@selectedFacetsChanged=${(e) => {
|
|
237
|
+
this.selectedFacets = e.detail;
|
|
238
238
|
}}
|
|
239
239
|
></facets-template>
|
|
240
|
-
`;
|
|
241
|
-
}
|
|
242
|
-
get loaderTemplate() {
|
|
240
|
+
`;
|
|
241
|
+
}
|
|
242
|
+
get loaderTemplate() {
|
|
243
243
|
return html `<div class="facets-loader">
|
|
244
244
|
<ia-activity-indicator .mode=${'processing'}></ia-activity-indicator>
|
|
245
|
-
</div> `;
|
|
246
|
-
}
|
|
247
|
-
// render pagination if more then 1 page
|
|
248
|
-
get facetsPaginationTemplate() {
|
|
249
|
-
return this.paginationSize > 1
|
|
245
|
+
</div> `;
|
|
246
|
+
}
|
|
247
|
+
// render pagination if more then 1 page
|
|
248
|
+
get facetsPaginationTemplate() {
|
|
249
|
+
return this.paginationSize > 1
|
|
250
250
|
? html `<more-facets-pagination
|
|
251
251
|
.size=${this.paginationSize}
|
|
252
252
|
.currentPage=${1}
|
|
253
253
|
@pageNumberClicked=${this.pageNumberClicked}
|
|
254
|
-
></more-facets-pagination>`
|
|
255
|
-
: nothing;
|
|
256
|
-
}
|
|
257
|
-
get footerTemplate() {
|
|
258
|
-
if (this.paginationSize > 0) {
|
|
254
|
+
></more-facets-pagination>`
|
|
255
|
+
: nothing;
|
|
256
|
+
}
|
|
257
|
+
get footerTemplate() {
|
|
258
|
+
if (this.paginationSize > 0) {
|
|
259
259
|
return html `${this.facetsPaginationTemplate}
|
|
260
260
|
<div class="footer">
|
|
261
261
|
<button
|
|
@@ -272,24 +272,24 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
272
272
|
>
|
|
273
273
|
Apply filters
|
|
274
274
|
</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 getModalHeaderTemplate() {
|
|
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';
|
|
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 getModalHeaderTemplate() {
|
|
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
287
|
return html `<span class="sr-only">More facets for:</span>
|
|
288
288
|
<span class="title">
|
|
289
289
|
${this.facetGroupTitle}
|
|
290
290
|
|
|
291
291
|
<label class="sort-label">Sort by:</label>
|
|
292
|
-
${this.facetKey
|
|
292
|
+
${this.facetKey
|
|
293
293
|
? html `<toggle-switch
|
|
294
294
|
class="sort-toggle"
|
|
295
295
|
leftValue=${AggregationSortType.COUNT}
|
|
@@ -297,17 +297,17 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
297
297
|
rightValue=${valueFacetSort[this.facetKey]}
|
|
298
298
|
rightLabel=${this.facetGroupTitle}
|
|
299
299
|
side=${defaultSwitchSide}
|
|
300
|
-
@change=${(e) => {
|
|
301
|
-
this.sortFacetAggregation(Number(e.detail));
|
|
300
|
+
@change=${(e) => {
|
|
301
|
+
this.sortFacetAggregation(Number(e.detail));
|
|
302
302
|
}}
|
|
303
|
-
></toggle-switch>`
|
|
303
|
+
></toggle-switch>`
|
|
304
304
|
: nothing}
|
|
305
|
-
</span>`;
|
|
306
|
-
}
|
|
307
|
-
render() {
|
|
305
|
+
</span>`;
|
|
306
|
+
}
|
|
307
|
+
render() {
|
|
308
308
|
return html `
|
|
309
|
-
${this.facetsLoading
|
|
310
|
-
? this.loaderTemplate
|
|
309
|
+
${this.facetsLoading
|
|
310
|
+
? this.loaderTemplate
|
|
311
311
|
: html `
|
|
312
312
|
<section id="more-facets">
|
|
313
313
|
<div class="header-content">${this.getModalHeaderTemplate}</div>
|
|
@@ -315,36 +315,36 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
315
315
|
${this.footerTemplate}
|
|
316
316
|
</section>
|
|
317
317
|
`}
|
|
318
|
-
`;
|
|
319
|
-
}
|
|
320
|
-
applySearchFacetsClicked() {
|
|
321
|
-
var _a, _b;
|
|
322
|
-
const event = new CustomEvent('facetsChanged', {
|
|
323
|
-
detail: this.selectedFacets,
|
|
324
|
-
bubbles: true,
|
|
325
|
-
composed: true,
|
|
326
|
-
});
|
|
327
|
-
this.dispatchEvent(event);
|
|
328
|
-
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
329
|
-
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
330
|
-
category: analyticsCategories.default,
|
|
331
|
-
action: `${analyticsActions.applyMoreFacetsModal}`,
|
|
332
|
-
label: `${this.facetKey}`,
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
cancelClick() {
|
|
336
|
-
var _a, _b;
|
|
337
|
-
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
338
|
-
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
339
|
-
category: analyticsCategories.default,
|
|
340
|
-
action: analyticsActions.closeMoreFacetsModal,
|
|
341
|
-
label: `${this.facetKey}`,
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
static get styles() {
|
|
345
|
-
const modalSubmitButton = css `var(--primaryButtonBGColor, #194880)`;
|
|
346
|
-
return [
|
|
347
|
-
srOnlyStyle,
|
|
318
|
+
`;
|
|
319
|
+
}
|
|
320
|
+
applySearchFacetsClicked() {
|
|
321
|
+
var _a, _b;
|
|
322
|
+
const event = new CustomEvent('facetsChanged', {
|
|
323
|
+
detail: this.selectedFacets,
|
|
324
|
+
bubbles: true,
|
|
325
|
+
composed: true,
|
|
326
|
+
});
|
|
327
|
+
this.dispatchEvent(event);
|
|
328
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
329
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
330
|
+
category: analyticsCategories.default,
|
|
331
|
+
action: `${analyticsActions.applyMoreFacetsModal}`,
|
|
332
|
+
label: `${this.facetKey}`,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
cancelClick() {
|
|
336
|
+
var _a, _b;
|
|
337
|
+
(_a = this.modalManager) === null || _a === void 0 ? void 0 : _a.closeModal();
|
|
338
|
+
(_b = this.analyticsHandler) === null || _b === void 0 ? void 0 : _b.sendEvent({
|
|
339
|
+
category: analyticsCategories.default,
|
|
340
|
+
action: analyticsActions.closeMoreFacetsModal,
|
|
341
|
+
label: `${this.facetKey}`,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
static get styles() {
|
|
345
|
+
const modalSubmitButton = css `var(--primaryButtonBGColor, #194880)`;
|
|
346
|
+
return [
|
|
347
|
+
srOnlyStyle,
|
|
348
348
|
css `
|
|
349
349
|
@media (max-width: 560px) {
|
|
350
350
|
section#more-facets {
|
|
@@ -409,69 +409,69 @@ let MoreFacetsContent = class MoreFacetsContent extends LitElement {
|
|
|
409
409
|
text-align: center;
|
|
410
410
|
margin-top: 10px;
|
|
411
411
|
}
|
|
412
|
-
`,
|
|
413
|
-
];
|
|
414
|
-
}
|
|
415
|
-
};
|
|
416
|
-
__decorate([
|
|
417
|
-
property({ type: String })
|
|
418
|
-
], MoreFacetsContent.prototype, "facetKey", void 0);
|
|
419
|
-
__decorate([
|
|
420
|
-
property({ type: String })
|
|
421
|
-
], MoreFacetsContent.prototype, "facetAggregationKey", void 0);
|
|
422
|
-
__decorate([
|
|
423
|
-
property({ type: String })
|
|
424
|
-
], MoreFacetsContent.prototype, "query", void 0);
|
|
425
|
-
__decorate([
|
|
426
|
-
property({ type: Object })
|
|
427
|
-
], MoreFacetsContent.prototype, "filterMap", void 0);
|
|
428
|
-
__decorate([
|
|
429
|
-
property({ type: Object })
|
|
430
|
-
], MoreFacetsContent.prototype, "modalManager", void 0);
|
|
431
|
-
__decorate([
|
|
432
|
-
property({ type: Object })
|
|
433
|
-
], MoreFacetsContent.prototype, "searchService", void 0);
|
|
434
|
-
__decorate([
|
|
435
|
-
property({ type: String })
|
|
436
|
-
], MoreFacetsContent.prototype, "searchType", void 0);
|
|
437
|
-
__decorate([
|
|
438
|
-
property({ type: Object })
|
|
439
|
-
], MoreFacetsContent.prototype, "pageSpecifierParams", void 0);
|
|
440
|
-
__decorate([
|
|
441
|
-
property({ type: Object })
|
|
442
|
-
], MoreFacetsContent.prototype, "collectionTitles", void 0);
|
|
443
|
-
__decorate([
|
|
444
|
-
property({ type: Object })
|
|
445
|
-
], MoreFacetsContent.prototype, "selectedFacets", void 0);
|
|
446
|
-
__decorate([
|
|
447
|
-
property({ type: String })
|
|
448
|
-
], MoreFacetsContent.prototype, "sortedBy", void 0);
|
|
449
|
-
__decorate([
|
|
450
|
-
property({ type: Object, attribute: false })
|
|
451
|
-
], MoreFacetsContent.prototype, "analyticsHandler", void 0);
|
|
452
|
-
__decorate([
|
|
453
|
-
state()
|
|
454
|
-
], MoreFacetsContent.prototype, "aggregations", void 0);
|
|
455
|
-
__decorate([
|
|
456
|
-
state()
|
|
457
|
-
], MoreFacetsContent.prototype, "facetGroup", void 0);
|
|
458
|
-
__decorate([
|
|
459
|
-
state()
|
|
460
|
-
], MoreFacetsContent.prototype, "facetGroupTitle", void 0);
|
|
461
|
-
__decorate([
|
|
462
|
-
state()
|
|
463
|
-
], MoreFacetsContent.prototype, "pageNumber", void 0);
|
|
464
|
-
__decorate([
|
|
465
|
-
state()
|
|
466
|
-
], MoreFacetsContent.prototype, "facetsLoading", void 0);
|
|
467
|
-
__decorate([
|
|
468
|
-
state()
|
|
469
|
-
], MoreFacetsContent.prototype, "paginationSize", void 0);
|
|
470
|
-
__decorate([
|
|
471
|
-
state()
|
|
472
|
-
], MoreFacetsContent.prototype, "facetsType", void 0);
|
|
473
|
-
MoreFacetsContent = __decorate([
|
|
474
|
-
customElement('more-facets-content')
|
|
475
|
-
], MoreFacetsContent);
|
|
476
|
-
export { MoreFacetsContent };
|
|
412
|
+
`,
|
|
413
|
+
];
|
|
414
|
+
}
|
|
415
|
+
};
|
|
416
|
+
__decorate([
|
|
417
|
+
property({ type: String })
|
|
418
|
+
], MoreFacetsContent.prototype, "facetKey", void 0);
|
|
419
|
+
__decorate([
|
|
420
|
+
property({ type: String })
|
|
421
|
+
], MoreFacetsContent.prototype, "facetAggregationKey", void 0);
|
|
422
|
+
__decorate([
|
|
423
|
+
property({ type: String })
|
|
424
|
+
], MoreFacetsContent.prototype, "query", void 0);
|
|
425
|
+
__decorate([
|
|
426
|
+
property({ type: Object })
|
|
427
|
+
], MoreFacetsContent.prototype, "filterMap", void 0);
|
|
428
|
+
__decorate([
|
|
429
|
+
property({ type: Object })
|
|
430
|
+
], MoreFacetsContent.prototype, "modalManager", void 0);
|
|
431
|
+
__decorate([
|
|
432
|
+
property({ type: Object })
|
|
433
|
+
], MoreFacetsContent.prototype, "searchService", void 0);
|
|
434
|
+
__decorate([
|
|
435
|
+
property({ type: String })
|
|
436
|
+
], MoreFacetsContent.prototype, "searchType", void 0);
|
|
437
|
+
__decorate([
|
|
438
|
+
property({ type: Object })
|
|
439
|
+
], MoreFacetsContent.prototype, "pageSpecifierParams", void 0);
|
|
440
|
+
__decorate([
|
|
441
|
+
property({ type: Object })
|
|
442
|
+
], MoreFacetsContent.prototype, "collectionTitles", void 0);
|
|
443
|
+
__decorate([
|
|
444
|
+
property({ type: Object })
|
|
445
|
+
], MoreFacetsContent.prototype, "selectedFacets", void 0);
|
|
446
|
+
__decorate([
|
|
447
|
+
property({ type: String })
|
|
448
|
+
], MoreFacetsContent.prototype, "sortedBy", void 0);
|
|
449
|
+
__decorate([
|
|
450
|
+
property({ type: Object, attribute: false })
|
|
451
|
+
], MoreFacetsContent.prototype, "analyticsHandler", void 0);
|
|
452
|
+
__decorate([
|
|
453
|
+
state()
|
|
454
|
+
], MoreFacetsContent.prototype, "aggregations", void 0);
|
|
455
|
+
__decorate([
|
|
456
|
+
state()
|
|
457
|
+
], MoreFacetsContent.prototype, "facetGroup", void 0);
|
|
458
|
+
__decorate([
|
|
459
|
+
state()
|
|
460
|
+
], MoreFacetsContent.prototype, "facetGroupTitle", void 0);
|
|
461
|
+
__decorate([
|
|
462
|
+
state()
|
|
463
|
+
], MoreFacetsContent.prototype, "pageNumber", void 0);
|
|
464
|
+
__decorate([
|
|
465
|
+
state()
|
|
466
|
+
], MoreFacetsContent.prototype, "facetsLoading", void 0);
|
|
467
|
+
__decorate([
|
|
468
|
+
state()
|
|
469
|
+
], MoreFacetsContent.prototype, "paginationSize", void 0);
|
|
470
|
+
__decorate([
|
|
471
|
+
state()
|
|
472
|
+
], MoreFacetsContent.prototype, "facetsType", void 0);
|
|
473
|
+
MoreFacetsContent = __decorate([
|
|
474
|
+
customElement('more-facets-content')
|
|
475
|
+
], MoreFacetsContent);
|
|
476
|
+
export { MoreFacetsContent };
|
|
477
477
|
//# sourceMappingURL=more-facets-content.js.map
|